Consulta a Dados Externos Excel com Parâmetros
Especialista em Excel

Objetivo: Consultar dados externos com parâmetros no Excel.
Hoje eu li na comunidade Office Excel 2007 um tópico sobre o union de tabelas, realmente interessante que trabalhava com importação de dados externos.
Isso me fez lembrar de um problema apresentado pelo meu amigo Ivan, então este artigo é dedicado a ele.
Com base nisso, resolvi criar uma consulta a dados externos utilizando parâmetros dentro da planilha, e que ficou com um resultado legal.
Criando a Importação de dados:
- Baixe o arquivo Dados.xlsx antes de iniciar o trabalho, os dados deste arquivo serão importados.
- Clique na aba Dados, botão De Outras Fontes -> Do Microsoft Query.
- Na tela selecione Excel Files*.
- Clique em OK, e selecione o arquivo que foi baixado no seu computador.
- Selecione Dados na próxima tela e clique na seta para a direita.
- Clique em Avançar até que apareça o botão Concluir, determine o local como a célula A1 e clique em OK.
Criando o código fonte:
- Clique na guia Desenvolvedor e no botão Gravar Macro, iremos criar uma macro com o código pronto de uma alteração e atualização da importação, neste passo você pode ter mais informações sobre gravação de macros no artigo Como Gravar Macro no Excel.
- Clique na guia Dados e em seguida em Conexões, selecione a consulta criada e clique no botão Propriedades.
- Clique na guia Definição apague seu conteúdo e digite no campo Texto de Comando: SELECT * FROM DADOS.
- Clique em Ok para fechar a janela.
- Na janela que continuou aberta clique no botão Atualizar->Atualizar Tudo.
- Clique em Fechar.
- Vá para a aba Desenvolvedor e clique em Parar Gravação, você terá criado o código fonte base para a passagem dos parâmetros.
Criando os parâmetros:
- Prepare os campos conforme abaixo, estes servirão para a passagem dos parâmetros:
- Na guia Desenvolvedor clique no botão Visual Basic e no módulo da planilha localize o código gerado pela gravação.
- Neste código digite no topo:
Este código fonte acima em SQL está selecionando os dados quando for um determinado vendedor e quando a data estiver entre a data inicial e a final, inclusive. Depois você deve passar a variável lSql para o lugar .CommandText = Array(.... que você encontrará no código fonte abaixo. O código ficará conforme abaixo:
Sub Atualiza()
Dim lSql As String
If Range("J1").Value = "" Then
lSql = "SELECT * FROM DADOS WHERE " & _
"Data BETWEEN #" & Range("J2").Value & "# AND #" & Range("J3").Value & "#"
Else
lSql = "SELECT * FROM DADOS WHERE Vendedor = " & "'" & Range("J1").Value & _
"' And Data BETWEEN #" & Range("J2").Value & "# AND #" & Range("J3").Value & "#"
End If
With ActiveWorkbook.Connections("Consulta de Excel Files").ODBCConnection
.BackgroundQuery = True
.CommandText = Array(lSql)
.CommandType = xlCmdSql
.Connection = Array(Array( _
"ODBC;DSN=Excel Files;DBQ=C:\Excel\Blog Rieper Excel\Importação de Dados com Parâmetros\Dados.xlsx;DefaultDir=C:\Excel\Blog Rieper Ex" _
), Array( _
"cel\Importação de Dados com Parâmetros;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;" _
))
.RefreshOnFileOpen = False
.SavePassword = False
.SourceConnectionFile = ""
.SourceDataFile = ""
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
End With
With ActiveWorkbook.Connections("Consulta de Excel Files")
.Name = "Consulta de Excel Files"
.Description = ""
End With
ActiveWorkbook.Connections("Consulta de Excel Files").Refresh
ActiveWorkbook.RefreshAll
End Sub
Finalizando:
- Salve o código alterado e retorne para a planilha.
- Crie uma forma ao lado dos parâmetros como o nome de Aplicar.
- Clique com o botão direito sobre a forma criada e na opção Atribuir Macro.
- Selecione a macro criada e clique em OK.
Pronto!, agora você deve digitar o nome do vendedor na célula I1, e o período inicial e final que devem ser retornados na importação de dados, e você terá estas informações filtradas pelos parâmetros.
Então é isso, muito obrigado pela leitura, mandem sugestões, dicas e dúvidas para o blog, ficarei feliz em ajudar.
Abraço
Marcos Rieper
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90










