Como Importar e Manipular Dados com VBA Excel
- Rafael Pinheiro
- 4 de jun. de 2024
- 3 min de leitura
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:
Economia de Tempo: Importações automatizadas economizam horas de trabalho manual.
Precisão: Reduz o risco de erros humanos ao importar dados.
Consistência: Garante que os dados sejam importados e formatados de forma consistente todas as vezes.
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.AutoFitEnd SubExecutando 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.AutoFitEnd SubExecutando 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 SubAplicando 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 SubPara 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!




Comentários