top of page
Rafael Pinheiro

Como Importar e Manipular Dados com VBA Excel

No último post, aprendemos como criar automações personalizadas no Excel usando VBA. Hoje, vamos dar mais um passo e explorar como importar dados de diferentes fontes e manipulá-los usando VBA. Este tutorial é ideal para quem deseja automatizar a importação de dados de arquivos externos e realizar transformações em larga escala.


Por que Importar Dados com VBA?


Importar dados manualmente pode ser uma tarefa demorada e propensa a erros. Usar VBA para automatizar esse processo traz vários benefícios:

  1. Economia de Tempo: Importações automatizadas economizam horas de trabalho manual.

  2. Precisão: Reduz o risco de erros humanos ao importar dados.

  3. Consistência: Garante que os dados sejam importados e formatados de forma consistente todas as vezes.

  4. Flexibilidade: Permite importar dados de várias fontes e formatos, como arquivos CSV, bancos de dados, e até a web.


Importando Dados de um Arquivo CSV

Vamos começar com um exemplo simples: importar dados de um arquivo CSV.

Passo a Passo:

Preparando o Ambiente:

  • Certifique-se de que a guia "Desenvolvedor" esteja habilitada no Excel.

  • Abra o Editor VBA (Alt + F11).


Criando o Script VBA:

  • Insira um novo módulo no Editor VBA.

  • Copie e cole o seguinte código:

Sub ImportarDadosCSV()
    ' Declaração das variáveis
    Dim ws As Worksheet
    Dim arquivoCSV As String
    Dim linha As String
    Dim dados As Variant
    Dim i As Long
    
    ' Definindo a planilha de destino
    Set ws = ThisWorkbook.Sheets("DadosImportados")
    ws.Cells.Clear ' Limpa dados antigos
    
    ' Caminho do arquivo CSV
    arquivoCSV = "C:\caminho\para\seu\arquivo.csv"
    
    ' Abrindo o arquivo CSV
    Open arquivoCSV For Input As #1
    
    ' Lendo o arquivo linha por linha
    i = 1
    Do Until EOF(1)
        Line Input #1, linha
        dados = Split(linha, ",")
        ws.Cells(i, 1).Resize(1, UBound(dados) + 1).Value = dados
        i = i + 1
    Loop
    
    ' Fechando o arquivo
    Close #1
    
    ' Aplicando formatação
    ws.Columns.AutoFit
End Sub

Executando o Script:

  • No Editor VBA, clique em "Executar" (ícone de play) ou pressione F5.

  • O script importará os dados do arquivo CSV especificado e os inserirá na planilha "DadosImportados".


Importando Dados de um Banco de Dados

Agora, vamos importar dados de um banco de dados usando uma conexão ODBC.

Passo a Passo:

Configurando a Conexão ODBC:

  • Certifique-se de que você tenha um driver ODBC configurado para o banco de dados.

  • Obtenha as credenciais de acesso ao banco de dados.

Criando o Script VBA:

  • Insira um novo módulo no Editor VBA.

  • Copie e cole o seguinte código:

Sub ImportarDadosBancoDeDados()
    ' Declaração das variáveis
    Dim ws As Worksheet
    Dim conexao As Object
    Dim recordset As Object
    Dim sql As String
    Dim linha As Long
    
    ' Definindo a planilha de destino
    Set ws = ThisWorkbook.Sheets("DadosImportados")
    ws.Cells.Clear ' Limpa dados antigos
    
    ' Conexão com o banco de dados
    Set conexao = CreateObject("ADODB.Connection")
    conexao.Open "Driver={SQL Server};Server=seu_servidor;Database=sua_base;UID=seu_usuario;PWD=sua_senha;"
    
    ' Definindo a consulta SQL
    sql = "SELECT * FROM sua_tabela"
    
    ' Executando a consulta
    Set recordset = conexao.Execute(sql)
    
    ' Importando os dados
    linha = 1
    Do Until recordset.EOF
        ws.Cells(linha, 1).Resize(1, recordset.Fields.Count).Value = recordset.GetRows
        linha = linha + 1
        recordset.MoveNext
    Loop
    
    ' Fechando a conexão
    recordset.Close
    conexao.Close
    
    ' Aplicando formatação
    ws.Columns.AutoFit
End Sub

Executando o Script:

  • No Editor VBA, clique em "Executar" (ícone de play) ou pressione F5.

  • O script importará os dados da tabela especificada e os inserirá na planilha "DadosImportados".


Manipulando Dados Importados

Após importar os dados, você pode usar VBA para manipulá-los. Aqui está um exemplo de como aplicar filtros e cálculos:

Filtrando Dados:

Sub FiltrarDados()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("DadosImportados")
    
    ' Aplicando filtro
    ws.Range("A1").AutoFilter Field:=1, Criteria1:="Valor"
End Sub

Aplicando Cálculos:

Sub CalcularTotais()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("DadosImportados")
    
    ' Adicionando uma fórmula de soma na última linha
    ws.Cells(ws.Rows.Count, "B").End(xlUp).Offset(1, 0).Formula = "=SUM(B2:B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row & ")"
End Sub

Para mostrar o potencial da ferramenta VBA no Excel, segue um vídeo bem legal mostrando como importar dados da internet para consulta de CEP.




Conclusão

Importar e manipular dados no Excel usando VBA pode parecer complexo, mas com prática, você pode automatizar processos e melhorar significativamente sua eficiência. No próximo post, exploraremos como gerar relatórios dinâmicos e gráficos avançados usando VBA.


Convite à interação: Se você gostou deste post, não se esqueça de se inscrever no blog e deixar seus comentários. Quais são suas maiores dificuldades com importação de dados no Excel? Quais temas você gostaria de ver aqui? Até a próxima!

45 visualizações0 comentário

Posts recentes

Ver tudo

Comments


bottom of page