Há muitas maneiras de obter dados de fontes externas em uma planilha
Você também pode obter dados da Internet, arquivos de texto ou outros Excel ou
Então precisamos de uma conexão com o banco de dados (variável varConn na macro abaixo) e Consulta SQL (variável varSQL ) para automatizar a recuperação de dados do banco de dados para o relatório. No exemplo abaixo há Consulta SQL , que recebe dados de um pequeno banco de dados em MS Access.
Clique carregar o banco de dados
O arquivo MS Access ficará assim:
Vamos escrever nossa macro que será executada Consulta SQL .
Abra o cardápio Serviço - Macro - Editor Visual Basic , insira o novo módulo (cardápio Insert - Module ) e copie o texto da macro lá:
Sub SQLQuery_1() 'moonexcel.com.ua Dim varConn As String Dim varSQL As String Range("A1").CurrentRegion.ClearContents varConn = "ODBC;Driver={Microsoft Access Driver (*.mdb, *.accdb)}" varSQL = "SELECT Month, Product, City FROM Sumproduct" With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1")) .CommandText = varSQL .Refresh BackgroundQuery:=False End With End Sub
Clique em salvar e retorne para Excel. Escolha no cardápio Exibir - Macros (Alt+F8) o nome da nossa macro " SQLQuery_1 ". Uma caixa de diálogo aparecerá, pressione-a Base de dados... , procure nosso arquivo Access e clique
Agora podemos ver que nossa consulta macro puxou as colunas
Da mesma forma, podemos obter dados de um arquivo Excel normal como se fosse um banco de dados. Para isso, o código da nossa macro precisa ser ligeiramente reescrito e o driver de conexão alterado de Access para Excel.
Exportamos a mesa
Sub SQLQuery_2() 'moonexcel.com.ua Dim varConn As String Dim varSQL As String Range("A1").CurrentRegion.ClearContents varConn = "ODBC;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}" varSQL = "SELECT Month, Product, City FROM Sumproduct" With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1")) .CommandText = varSQL .Refresh BackgroundQuery:=False End With End Sub
Irá aparecer uma janela onde podemos selecionar nosso arquivo Excel (deve ser chamado