Arquivo

Posts Tagged ‘Abrir Com Vba’

VBA Copiar colar arquivos diferentes

 

copiar colar vba

Vocês votaram na enquete aqui do site excel e vba e em segundo lugar ficou o assunto VBA Copiar colar arquivos diferentes.
A maneira que demonstro é uma mais avançada e também com menos código.


Porém se você não gostar ou achar complicado aqui mesmo no site há outras maneiras (passo1 e passo2)que envolvem copiar célula por célula com um loop.

Você que escolhe a melhor maneira para trabalhar excel com vba.

 

1 – Vamos ao codigo VBA Copiar Colar arquivos diferentes:

________________________________________________________

 

 

Sub COPIAR_COLAR_ARQUIVO_DIFERENTES()
'Declarações

Dim appExcel As Excel.Application
Dim wb As Excel.Workbook

'A Aplicação Excel é criada aqui:

Set appExcel = CreateObject("Excel.Application")

'A linha abaixo é importante: eu estou dizendo que todo o processo seja invisível.
'Talvez para testes seja importante deixar como True e assim acompanhar o processo

appExcel.Visible = False

'Note que, na linha abaixo, foi adicionado um Workbook (um plan)
'E esse workboook fica nomeado como "wb"

Set wb = appExcel.Workbooks.Add

'Agora para simplificar o processo, também vou gravar o nome da planilha origem

Set oldPlan = Workbooks("planilha_antiga.xlsm").Worksheets("Plan1")

'Então copio todos os dados da tabela

oldPlan.Range("A2").CurrentRegion.Copy

'Na linha abaixo eu colo os dados na nova planilha (lembre-se do "wb")

wb.Worksheets("Plan1").Range("A1").PasteSpecial xlPasteValues

'Nas linhas abaixo eu salvo a planilha no mesmo diretorio que a planilha antiga

diretorio = ThisWorkbook.Path & "\"
nome = "exemplo.xls"
appExcel.DisplayAlerts = False
wb.SaveAs Filename:=diretorio & nome, FileFormat:=xlNormal

'Agora eu elimino o processo aberto do excel

appExcel.Quit

'E finalizado as declarações

Set wb = Nothing
Set appExcel = Nothing

End Sub

 

2 – Vídeo Demonstrativo

 

 

Como Abrir Internet com VBA

Olá pessoal, segue um código para abrir internet com VBA, uma página web qualquer.

Para ver o código abaixo funcionando basta abrir um módulo, copiar o código abaixo e colar

Lembrando que para funcionar o endereço web deve existir, caso contrário ocorrerá erro (que poderá ser tratado com um goto)

 

Código Abrir Internet com VBA

___________________________________________________________

 

___________________________________________________________

Obs.: Infelizmente tive que colocar o código como imagem, estava ocorrendo conflito com o php do blog

 

Inserindo um modulo em outra planilha

Olá Pessoal

Abaixo segue um exemplo pra quem sempre desejou um código de vba que possa inserir uma macro em outra planilha.
O uso serve para o mais diverso… conforme a criatividade você pode fazer uma atualização vba sem precisar alterar manualmente (veja o post Excluindo um modulo em outra planilha), quem sabe uma planilha que gera macros para clientes ou ainda fazer uma expiração de data que apague os dados.
Tentei deixar o mais simples possível e assim ficar fácil o entendimento, e portanto não coloquei para Salvar após inserir o módulo ou Paralisar a tela antes de executar.

* Para o código abaixo funcionar é necessário habilitar opção de confiança de objetos VBA

modulo em outra planilha

* Também é necessário adicionar na biblioteca a referencia Extensibility, dúvida ver o vídeo

_________________________________________________________________________

Sub INSERIR_MODULO_EXCELEVBA_COM_BR()

Dim ObjVbProj As VBProject

Dim ObjVbComp As VBComponent
Dim ObjVbMod As CodeModule

Dim txtMacroLinha2 As String
Dim txtMacroLinha3 As String
Dim txtMacroLinha4 As String

'abaixo segue o código que será inserido em outra planilha
txtMacroLinha2 = "Sub NovoProcedimento()"
txtMacroLinha3 = " Msgbox ""Olá BemVindo excelevba.com.br"" "
txtMacroLinha4 = "End Sub"

''----------------opcao 1-------------------------------
''caso queira abrir uma nova macro
'Workbooks.Add
'Set ObjVbProj = ActiveWorkbook.VBProject

''----------------opcao 2------------------------------
''abrir um arquivo antigo
endereco = "c:\temp\codigoAntigo.xlsm"
Workbooks.Open (endereco)
Set ObjVbProj = ActiveWorkbook.VBProject

''----------------------------------------------
Set ObjVbComp = ObjVbProj.VBComponents.Add(vbext_ct_StdModule)
ObjVbComp.Name = "Mod1" 'nome do módulo

Set ObjVbMod = ObjVbComp.CodeModule

ObjVbMod.InsertLines 2, txtMacroLinha2
ObjVbMod.InsertLines 3, txtMacroLinha3
ObjVbMod.InsertLines 4, txtMacroLinha4

'Retirar o objeto
Set ObjVbMod = Nothing
DoEvents

End Sub

___________________________________________________

Segue vídeo demonstrativo

 

 

 

 

String de Conexão

Segue abaixo um site com diversas conexões com banco de dados, muito útil quando esquecemos alguma conexão ou desejamos saber uma conexão com um banco que não estamos acostumados.

Nesse site http://www.connectionstrings.com/ encontramos conexões para diversos bancos Oracle, Access, SQL Server,  MySQL, Postgre, DB2, Firebird,  , Informix, Interbase e etc.

Acesses: http://www.connectionstrings.com/

Abrir documento de forma oculta / Excel abrir Access

Abaixo há dois exemplos de código, o primeiro irá criar um aplicativo access e abrir o banco de forma oculta (poderia ser o Excel também).

E o segundo código para eliminar o objeto criado.

Atenção, ao criar o documento de forma invisivel, toda vez que quiser referencia-lo para copiar dados, colar e etc, deverá o objeto. Exemplo: objetoCriado.worksheet(1).cells(1,1).select
______________________________________________________
Sub criarObjeto()
endereco = ThisWorkbook.Path + “\”

Set A = CreateObject(“Access.Application”) ‘Poderia ser “Excel.Application” também
A.Visible = False

A.OpenCurrentDatabase (endereco + “tblExemplo.mdb”)
‘Se fosse excel seria:  a.Workbooks.Open (endereco + “planilha.xls”)

End Sub


________________________________________________________
Sub encerrarObjeto() ‘Use este código para terminar com o objeto criado

A.CloseCurrentDatabase
A.Quit
Set A = Nothing

End Sub

Verificar todas as planilhas no diretorio

O código abaixo irá verificar planilha por planilha em seu diretório
Com isso você pode mostrar em um combobox ou então abrir cada planilha

________________________________________
sub diretorio ()

Dim nomeArquivo As String

nomeArquivo = ActiveWorkbook.Name
enderecoArquivo = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) – Len(nomeArquivo))

qtdeBases = enderecoArquivo + “bases\”
nomePlanilha = Dir(qtdeBases & “*.xls*”)

Do While Len(nomePlanilha) > 0
‘ codigo que voce desejar….exemplo abrir planilha
nomePlanilha = Dir()
Loop

end sub

Verificar Versão Office vba

Existe algumas discrepâncias de código entre o excel 2003, 2007 e as mais diversas versões, para isso vale usar um artifício simples que utiliza do código para verificar versão office .

Versão Office .

 

Código Verifica Versão Office VBA

 

Sub VerificaVersaoExcel ()

If Application.Version = "12.0" Then
   MsgBox "A versão do Excel  é 2007."

ElseIf Application.Version = "11.0" Then
   MsgBox "A versão do Excel  é 2003."

ElseIf Application.Version = "8.0" Then
   MsgBox "A versão do Excel é 97."

End If

End Sub

Abrir Arquivo De Texto com vba

Que tal aprender como abrir um arquivo de texto com vba?? Que tal usando a tela do windows para selecionar estes arquivos? Não é muito legal?

Pode ser muito útil em sua rotina de trabalho quando você recebe um pdf (então você passa para texto) e precisa passar para o excel.

Geralmente não é muito agradável de pegar o dados do texto e passar para excel com vba.

Então sendo bem direto segue o código abaixo! Copiem e teste no seu excel vba.


 Segue Código para abrir um arquivo de texto com vba

 

Sub abrirArquivo()

MsgBox "Selecione o arquivo txt", vbOKOnly, "Seleção de Arquivo"

'ABRIR ARQUIVO
arquivo = " "

Dim fd As FileDialog

Set fd = Application.FileDialog(msoFileDialogFilePicker)

Dim arquivo_temp As Variant

With fd
   .AllowMultiSelect = True
   If .Show = -1 Then
      For Each arquivo_temp In .SelectedItems
         arquivo = arquivo_temp
      Next arquivo_temp
   End If
End With

Set fd = Nothing

'Abaixo é um código para ajustar as colunas do .txt para o excel que varia conforme cada tipo de arquivo
'Para você saber os seus parametros ideais, uma dica é criar uma macro e abrir um .txt e definir as colunas
'E depois ver o código que foi gerado.

Workbooks.OpenText arquivo _
, Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth, TextQualifier:=xlDoubleQuote _
, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(0, 1), Array(38, 1), _
Array(91, 1)), TrailingMinusNumbers:=True

'Ajuste automatico de coluna do excel
Columns("B:B").EntireColumn.AutoFit
Columns("A:A").EntireColumn.AutoFit

End Sub

 

Vídeo explicativo do codigo

Abrir Arquivo Com Vba 2

Com o código abaixo é possível abrir vários arquivos utilizando a janela do windows:

Sub abrir()

Dim arqNome As Variant

'forma o array e grava na variável pra selecionar multi-arquivos
arqNome = Application.GetOpenFilename(, , , , True)

'limitador, define quantos itens estará no array
For Y = 1 To UBound(arqNome)
   Workbooks.Open arqNome(Y)
Next
End Sub

__________________

Veja Também:  Selecionar/ativar Planilha