Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
[Resolvido] SQL/vba para importar dados com critério de datas
[Resolvido] SQL/vba para importar dados com critério de datas
Saudações amigos,
Obs: sou novato em macros .
Tenho um arquivo chamado "Importar" com uma macro chamada "Sub Importar_Dados", que importa os dados da planilha "dados para importar" do arquivo "Dados" .
encontrei esta macro na internet e ela está funcionando bem, ou seja, ela importa todos os dados da planilha "dados para importar" do arquivo "Dados" para dentro da "Plan1" do arquivo "Importar" .
Minha Necessidade:
Estou há dias tentando encontrar um jeito de adaptar esta macro "Sub Importar_Dados" para importar os dados com critérios de Data inicial e final, para a coluna A da planilha "dados para importar" .
desejo digitar numa Plan2 do arquivo "Importar" dois parâmetros de Datas: data início e data fim .
com isso a macro deverá "enxergar" estas duas Datas na Plan2 do arquivo "Importar" e então importar os Dados, filtrando assim estes parâmetros de Datas na coluna A da planilha "dados para importar", ou seja, a macro agora irá importar os dados obedecendo os parâmetros de Datas digitadas na Plan2 .
segue em anexo os dois arquivos citados neste tópico (e a macro também) .
desde já agradeço a ajuda dos amigos .
Obs: sou novato em macros .
Tenho um arquivo chamado "Importar" com uma macro chamada "Sub Importar_Dados", que importa os dados da planilha "dados para importar" do arquivo "Dados" .
encontrei esta macro na internet e ela está funcionando bem, ou seja, ela importa todos os dados da planilha "dados para importar" do arquivo "Dados" para dentro da "Plan1" do arquivo "Importar" .
Minha Necessidade:
Estou há dias tentando encontrar um jeito de adaptar esta macro "Sub Importar_Dados" para importar os dados com critérios de Data inicial e final, para a coluna A da planilha "dados para importar" .
desejo digitar numa Plan2 do arquivo "Importar" dois parâmetros de Datas: data início e data fim .
com isso a macro deverá "enxergar" estas duas Datas na Plan2 do arquivo "Importar" e então importar os Dados, filtrando assim estes parâmetros de Datas na coluna A da planilha "dados para importar", ou seja, a macro agora irá importar os dados obedecendo os parâmetros de Datas digitadas na Plan2 .
segue em anexo os dois arquivos citados neste tópico (e a macro também) .
desde já agradeço a ajuda dos amigos .
- Anexos
-
- Importar Dados.rar
- (100.34 KiB) Baixado 188 vezes
Editado pela última vez por Mathmatic em Sáb Jul 25, 2020 1:16 pm, em um total de 1 vez.
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: SQL/vba para importar dados com critério de datas
Experimente:
Código: Selecionar todos
Sub Importar_Dados()
Dim Fichier As String, Destination As String, Requete As String
Dim strdtIni As String, strdtFim As String
strdtIni = Format(Sheets("Plan2").Range("A2").Value, "yyyy/mm/dd")
strdtFim = Format(Sheets("Plan2").Range("b2").Value, "yyyy/mm/dd")
'Fichier = "C:\Users\Usuario\Documents\novo\Dados.xlsm" 'caminho do arquivo de busca
'Requete = "SELECT * FROM [dados para importar$A1:K5000]" 'planilha e árae de busca
Fichier = "C:\Users\reina\Documents\Importar Dados\Dados.xlsm" 'caminho do arquivo de busca
Requete = "SELECT * FROM [dados para importar$] where DATAS >= #" & strdtIni & "# and DATAS <= #" & strdtFim & "#" 'planilha e árae de busca
Destination = "Plan1" 'planilha para colar os dados
RequeteClasseurFerme Fichier, Destination, Requete
End Sub
Re: SQL/vba para importar dados com critério de datas
senhor Reinaldo,
aplicando seu código nos arquivos que anexei aqui no fórum, funcionou muito bem. Logo mais tarde vou aplicar seu código nos meus arquivos originais (que são bem parcecidos, só que possuem mais colunas e mais linhas), mas acredito que tudo vai funcionar também...
tem um pequeno problema ocorrendo na célula L1 do arquivo "Importar" depois da importação dos Dados, pois está aparecendo ali nessa célula a palavra: F12. Não sei por que isso ocorre depois que importa os Dados ?
Não poderia acontecer na situação real, pois tenho fórmulas na sequência das colunas, ou seja, já na coluna seguinte, após os Dados importados, tenho várias fórmulas .
então essa palavra "F12" que ocorre na célula L1 do arquivo "Importar", poderá complicar meus cálculos seguintes .
teria como Não importar essa palavra F12 ?
desde já, agradeço por sua grande ajuda, amigo .
aplicando seu código nos arquivos que anexei aqui no fórum, funcionou muito bem. Logo mais tarde vou aplicar seu código nos meus arquivos originais (que são bem parcecidos, só que possuem mais colunas e mais linhas), mas acredito que tudo vai funcionar também...
tem um pequeno problema ocorrendo na célula L1 do arquivo "Importar" depois da importação dos Dados, pois está aparecendo ali nessa célula a palavra: F12. Não sei por que isso ocorre depois que importa os Dados ?
Não poderia acontecer na situação real, pois tenho fórmulas na sequência das colunas, ou seja, já na coluna seguinte, após os Dados importados, tenho várias fórmulas .
então essa palavra "F12" que ocorre na célula L1 do arquivo "Importar", poderá complicar meus cálculos seguintes .
teria como Não importar essa palavra F12 ?
desde já, agradeço por sua grande ajuda, amigo .
Editado pela última vez por Mathmatic em Sáb Jul 25, 2020 1:17 pm, em um total de 1 vez.
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: SQL/vba para importar dados com critério de datas
A importação leva em conta o chamado "usedRange" da planilha,
apesar de seu exemplo ter dados da coluna "A" até coluna K; portanto 11 colunas/campos; o usedRange da planilha considera ate a coluna "L", ou seja 12 colunas/campos. Como nessa coluna em "L1" não há valor explicito e é considerado um campo obrigatório o sistema automaticamente atribui a esse dado um valor, no caso F12 (Field 12).
E necessário efetuar os testes em sua planilha completa,mas creio que não haverá alterações de valores/formulas
apesar de seu exemplo ter dados da coluna "A" até coluna K; portanto 11 colunas/campos; o usedRange da planilha considera ate a coluna "L", ou seja 12 colunas/campos. Como nessa coluna em "L1" não há valor explicito e é considerado um campo obrigatório o sistema automaticamente atribui a esse dado um valor, no caso F12 (Field 12).
E necessário efetuar os testes em sua planilha completa,mas creio que não haverá alterações de valores/formulas
[Resolvido] SQL/vba para importar dados com critério de datas
senhor Reinaldo, mais uma vez, muito obrigado por sua ajuda .
vou colocar tudo em prática agora. Um grande abraço .
vou colocar tudo em prática agora. Um grande abraço .