Fórum Excel Bácico, Avançado e Vba

Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA...
 
InícioInício  FAQFAQ  BuscarBuscar  MembrosMembros  GruposGrupos  Registrar-seRegistrar-se  Login  

Compartilhe | 
 

 Macro que execute pesquisa no SQL de acordo com datas inseridas no excel

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
sap



Mensagens : 7
Data de inscrição : 06/08/2014

MensagemAssunto: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Qua Ago 06, 2014 4:40 pm

Boa tarde,

Estou com uma duvida...Tenho um ficheiro Excel com 3 folhas:

Dados - Contém os dados da query SQL(ligação servidor)

Data Final -  Tenho 2 campos p/ preenchimento: data inicio e data fim. Pretendo que vá buscar aos dados da query todas as linhas em que a coluna(data) <= campo(excel) data fim.

Inicio do Mês - Pretendo que vá buscar todas as linhas em que a coluna data >= Inicio do Mês. O inicio do mês entende-se pelo mês entre a data inicio e data fim, por ex: entre 05-08-2014 e 06-08-2014,devolva todas as linhas que em que a data <= 01-08-2014.

Tenho um ficheiro de exemplo com os campos todos...Alguém pode me dar uma "luz", inicialmente comecei a fazer somente no excel mas depois percebendo  o tamanho da base de dados desisti...teria que colocar formulas em 10000000 linhas hehehehehe, penso que por macro será mais fiável mas não sei como :s


Segue o ficheiro exemplo:

*http***w*w*w*4shared*com*file*rNQFO7iWba*exemplo**html*


Cumps,


Última edição por sap em Qua Ago 06, 2014 4:56 pm, editado 1 vez(es)
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Qua Ago 06, 2014 4:49 pm

Bom dia!!

Poste seu arquivo modelo!!!

Use um site gratuito como sendspace ou outros, depois poste seu link aqui.


Caso não tenha permissão para postar use uma mascara para querbrar o link (w*w*w.send*space.com)

Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
sap



Mensagens : 7
Data de inscrição : 06/08/2014

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Qui Ago 07, 2014 1:23 pm

sap escreveu:
Boa tarde,

Estou com uma duvida...Tenho um ficheiro Excel com 3 folhas:

Dados - Contém os dados da query SQL(ligação servidor)

Data Final -  Tenho 2 campos p/ preenchimento: data inicio e data fim. Pretendo que vá buscar aos dados da query todas as linhas em que a coluna(data) <= campo(excel) data fim.

Inicio do Mês - Pretendo que vá buscar todas as linhas em que a coluna data >= Inicio do Mês. O inicio do mês entende-se pelo mês entre a data inicio e data fim, por ex: entre 05-08-2014 e 06-08-2014,devolva todas as linhas que em que a data <= 01-08-2014.

Tenho um ficheiro de exemplo com os campos todos...Alguém pode me dar uma "luz", inicialmente comecei a fazer somente no excel mas depois percebendo  o tamanho da base de dados desisti...teria que colocar formulas em 10000000 linhas hehehehehe, penso que por macro será mais fiável mas não sei como :s


Segue o ficheiro exemplo:

*http***w*w*w*4shared*com*file*rNQFO7iWba*exemplo**html*


Cumps,



Comecei a fazer o código mas há qualquer coisa que estou fazendo errado,  só está a preencher o cabeçalho dos campos...
Criei uma folha(scr_hcurso), onde coloquei os dados do servidor e a instrução sql, a folha Horas CursoDataFinal é a folha que recebe os dados.

Segue o ficheiro...

w*w*w.4shared.com/file/GPnQ3OPdce/exemplo*html


Última edição por sap em Qui Ago 07, 2014 2:55 pm, editado 1 vez(es)
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Qui Ago 07, 2014 2:01 pm

Bom dia!!

Eu vou continuar esperando o arquivo!

Att Rolling Eyes 
Voltar ao Topo Ir em baixo
Ver perfil do usuário
sap



Mensagens : 7
Data de inscrição : 06/08/2014

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Qui Ago 07, 2014 2:56 pm

alexandrevba escreveu:
Bom dia!!

Eu vou continuar esperando o arquivo!

Att Rolling Eyes 

Bom dia,

Distraída...desc postei ontem e não postei o de hoje atualizado....Segue o link

w*w*w.4shared.com/file/AQJmInsoba/exemplo*HTML

Ficheiro atualizado *

cump,
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Qui Ago 07, 2014 7:15 pm

Boa tarde!!

Você vai precisar copiar para outra guia?

Código:
Public Sub AleVBA_850()
Dim lngStart As Long, lngEnd As Long
lngStart = Range("C2").Value
lngEnd = Range("C3").Value
Range("A4:F1000").AutoFilter field:=3, _
Criteria1:=">=" & lngStart, _
Operator:=xlAnd, _
Criteria1:="<=" & lngEnd
End Sub

Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
sap



Mensagens : 7
Data de inscrição : 06/08/2014

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Seg Ago 11, 2014 12:02 pm

Bom dia;

Desculpa responder só agora...entretanto acabei avançando de outra maneira mas ainda tenho problema no código, por alguma razão só está a buscar os cabeçalhos:

Segue o ficheiro exemplo e o código que estou utilizando.


w*w*w.4shared.com/file/XElbJkNEce/exemplo.html

Sub macro ()

   Sheets("scr_hcurso").Select ' seleciona data da da celula H2 da folha scr_hcurso e copia para a celula B13 da mesma folha
    Range("H2").Select
    Selection.Copy
    Range("B13").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A3").Select
    Sheets("HorCursoFinal").Select
 

   Sheets("HorCursoFinal").Select

   Dim srv As String
    Dim db As String ' nome do bd
    Dim idu As String
    Dim pw As String
    Dim cod1 As String  ' cod1 ao cod7 é a instrução sql
    Dim cod2 As String
    Dim cod3 As String
    Dim cod4 As String
    Dim cod5 As String
    Dim cod6 As String
    Dim cod7 As String ' data inserida pelo utilizador
    Dim nome As String
    Dim rg As String

' seleciona os campos da folha scr_hcurso
 
    srv = Sheets("scr_hcurso").Range("srv").Value
    db = Sheets("scr_hcurso").Range("db").Value
    idu = Sheets("scr_hcurso").Range("idu").Value
    pw = Sheets("scr_hcurso").Range("pw").Value
    cod1 = Sheets("scr_hcurso").Range("cod1").Value
    cod2 = Sheets("scr_hcurso").Range("cod2").Value
    cod3 = Sheets("scr_hcurso").Range("cod3").Value
    cod4 = Sheets("scr_hcurso").Range("cod4").Value
    cod5 = Sheets("scr_hcurso").Range("cod5").Value
    cod6 = Sheets("scr_hcurso").Range("cod6").Value
    cod7 = Sheets("scr_hcurso").Range("cod7").Value
    nome = Sheets("scr_hcurso").Range("nome").Value
    rg = Sheets("scr_hcurso").Range("rg").Value
 

   Sheets("HorCursoFinal").Select
    Range("A1").Select
    Range(rg).Select
    Cells.Select
    Selection.ClearContents
    Selection.QueryTable.Delete
    With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DRIVER=SQL Server;SERVER=" & srv & ";UID=" & idu & ";PWD=" & pw & ";APP=Microsoft® Query;WSID=" & srv & ";DATABASE=" & db & "" _
        , Destination:=Range(rg))
        .CommandText = Array( _
    cod1 _
        , cod2 _
        , cod3 _
        , cod4 _
        , cod5 _
        , cod6 _
        , cod7)
     
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=True

   End With
    Range("A3").Select
End Sub
Voltar ao Topo Ir em baixo
Ver perfil do usuário
sap



Mensagens : 7
Data de inscrição : 06/08/2014

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Seg Ago 11, 2014 3:56 pm

alexandrevba escreveu:
Boa tarde!!

Você vai precisar copiar para outra guia?

Código:
Public Sub AleVBA_850()
Dim lngStart As Long, lngEnd As Long
lngStart = Range("C2").Value
lngEnd = Range("C3").Value
Range("A4:F1000").AutoFilter field:=3, _
Criteria1:=">=" & lngStart, _
Operator:=xlAnd, _
Criteria1:="<=" & lngEnd
End Sub

Att

Reproduzi o seu código(alterando p/ string) mas está a filtrar somente 2 linhas, a ideia é que busque todas as linhas entre datas, só está a devolver uma.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Seg Ago 11, 2014 5:25 pm

Bom dia!!

Eu refiz os testes tente assim.
Código:
Sub AleVBA_850V2()
Dim lngStart As Long
Dim lngEnd As Long
Dim dateRange As Range
 
lngStart = Range("C2").Value
lngEnd = Range("C3").Value
Set dateRange = Range("A5:F1000")
 
dateRange.Autofilter field:=3, _
Criteria1:=">=" & lngStart, _
Operator:=xlAnd, _
Criteria2:="<=" & lngEnd

End Sub

Outra coisa, a busca está sendo considerada valores, não formulas!!!
Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
sap



Mensagens : 7
Data de inscrição : 06/08/2014

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Seg Ago 11, 2014 6:39 pm

alexandrevba escreveu:
Bom dia!!

Eu refiz os testes tente assim.
Código:
Sub AleVBA_850V2()
Dim lngStart As Long
Dim lngEnd As Long
Dim dateRange As Range
 
lngStart = Range("C2").Value
lngEnd = Range("C3").Value
Set dateRange = Range("A5:F1000")
 
dateRange.Autofilter field:=3, _
Criteria1:=">=" & lngStart, _
Operator:=xlAnd, _
Criteria2:="<=" & lngEnd

End Sub

Outra coisa, a busca está sendo considerada valores, não formulas!!!
Att

Oi Alexandre,

Agradeço a ajuda mas infelizmente não resultou, vou tentar que o critério seja inserido na query(conforme o código acima).

Cump,
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Seg Ago 11, 2014 7:33 pm

Boa tarde!!

Eu sinto em não poder te ajudar Crying or Very sad 

Pois eu estou tendo resultado positivo.

Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
sap



Mensagens : 7
Data de inscrição : 06/08/2014

MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Qui Ago 21, 2014 12:54 pm

alexandrevba escreveu:
Boa tarde!!

Eu sinto em não poder te ajudar Crying or Very sad 

Pois eu estou tendo resultado positivo.

Att

Boas,

Descobri o problema...estava no formato da data mas o seu código funciona na perfeição, muito obrigada Wink

Cumps,
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Conteúdo patrocinado




MensagemAssunto: Re: Macro que execute pesquisa no SQL de acordo com datas inseridas no excel   Hoje à(s) 10:51 pm

Voltar ao Topo Ir em baixo
 
Macro que execute pesquisa no SQL de acordo com datas inseridas no excel
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Código jquery para ocultar conteúdo de acordo com a página.
» Como fazer o angulo do sprite ser de acordo com o objeto que colidi
» Como ajustar a imagem de fundo das tabelas de acordo com a resolução do monitor
» Meu fórum não aparece nos buscadores de pesquisa
» Gerar uma frase aleatória de acordo com o horário

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Fórum Excel Bácico, Avançado e Vba :: Avançado/VBA :: Excel Avançado/VBA-
Ir para: