ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

Esqueceu sua senha?

Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Pesquisa com datas

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
pedro_mexico
Consultor
Consultor
Mensagens: 225
Registrado em: Qua Dez 09, 2015 5:54 pm

Pesquisa com datas

Mensagem por pedro_mexico » Qui Nov 12, 2020 9:02 pm

Boa noite amigos,
Procurava uma pequena ajuda com codigo para fazer a pesquisa numa listview por data de inicio e data fim.
Nao sei o que se passa com o codigo,pois se colocar poucas linhas de dados na planilha , ele estava a funcionar, mas quando colei o codigo no meu ficheiro principal ele deixa de fazer a pesquisa correctamente
nao percebo se é o codigo ou dos dados da planilha.

Código: Selecionar todos

Private Sub CommandButton2_Click()
'Butao pesquisa por data inicial e data final'
 On Error GoTo final

 Dim Tmp As Long
    Dim I As Long
    Dim sDtIni As Date
    Dim sDtFim As Date
    
    Tmp = UserForm_Menu.ListView3.ListItems.Count
    
        If TextBoxDataInicial = "" Then
                MsgBox "Digite uma Data Valida", , "Data Inicial Obrigatória !!!"
                TextBoxDataInicial.SetFocus
            Exit Sub
        ElseIf TextBoxDataFinal = "" Then
                MsgBox "Digite uma Data Valida", , "Data Final Obrigatória !!!"
                TextBoxDataFinal.SetFocus
            Exit Sub
    
        End If
    
    sDtIni = TextBoxDataInicial.Value
    sDtFim = TextBoxDataFinal.Value

    For I = 1 To Tmp
    
        With ListView3
            If .ListItems(I).SubItems(3) < sDtIni Then
                UserForm_Menu.ListView3.ListItems.Remove I
                    I = I - 1
                    Tmp = Tmp - 1
                        If I = Tmp Then Exit For
                            Tmp = UserForm_Menu.ListView3.ListItems.Count
         End If
           If .ListItems(I).SubItems(3) > sDtFim Then
                UserForm_Menu.ListView3.ListItems.Remove I
                    I = I - 1
                    Tmp = Tmp - 1
                        If I = Tmp Then Exit For
                            Tmp = UserForm_Menu.ListView3.ListItems.Count
                        
            ElseIf .ListItems(I).SubItems(3) = sDtFim Then
            
                    Tmp = Tmp ' 1
                        If I = Tmp Then Exit For
                            Tmp = UserForm_Menu.ListView3.ListItems.Count
  
            End If
                 
        End With

    Next
final:
End Sub
em anexo vai ficheiro para se alguem conseguir achar algum erro ou adaptar.
Obrigado
Anexos
Mapa Viaturas.rar
(1.15 MiB) Baixado 28 vezes



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1144
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Betim - MG
Contato:

Re: Pesquisa com datas

Mensagem por Mikel Silveira Fraga » Sex Nov 13, 2020 12:40 am

Pedro, boa noite.

Caro amigo, pelo que percebi, para realizar esse filtro, você esta preenchendo o ListView, para depois eliminar as linhas que não correspondem ao Período de Data determinado na busca.

Ao invés disso, pq não carregar no ListView, somente os itens que atenderem ao intervalo de datas estipulado pelo usuário, ou seja, que esteja dentro do intervalo de Data Inicio e Data Fim?

Caso tenha dúvidas sobre como fazer isso, dê uma olhada nesses dois vídeos que publiquei um tempo atrás, onde mostro a diferença entre ListView e ListBox. No exemplo, tem uma estrutura de filtro utilizada, que pode ser facilmente adaptada para sua necessidade.

Seguem os links:
- ListBox e ListView: Preenchimento de Filtro - pt.1
- ListBox e ListView: Preenchimento de Filtro - pt.2

Espero que esses vídeos possam lhe ajudar.

Abraços e excelente final de semana.


Gostou da dica? Clique no JOIA no topo da mensagem.
Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Orientações sobre o fórum, acesse aqui.

Mikel Silveira Fraga
E-mail: mikel-sf@hotmail.com | Linked In

pedro_mexico
Consultor
Consultor
Mensagens: 225
Registrado em: Qua Dez 09, 2015 5:54 pm

Re: Pesquisa com datas

Mensagem por pedro_mexico » Sex Nov 13, 2020 10:10 am

Bom dia Mikel,
Ainda nao vi o seu video, mas na descriçao vai ter a um link com um ficheiro, e como percebo pouco de vba, estou pouco a pouco tentando adaptar ao meu formulario o basico de programaçao vba, o codigo que tem no seu ficheiro é muio á frente, fico logo perdido quando abro o formulario e na pesquisa dá valores, mas na planilha nao encontro os dados que voce tem.
Ja percebi que o seu formulario esta a abrir um ficheiro oculto, mas logo ai tras problemas para o meu pequeno conhecimento de vba.

envio o anexo do ficheiro que voce tinha no seu site
Anexos
ModeloCadastrov3ListView.zip
(69.99 KiB) Baixado 26 vezes



Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1433
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Pesquisa com datas

Mensagem por Reinaldo » Sex Nov 13, 2020 2:16 pm

Talvez o exemplo viewtopic.php?f=23&t=3002&p=15470&hilit ... ew1#p15470 na sala "Modelos Prontos" o auxilie


Reinaldo
:oops: :D :mrgreen: :geek:

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


pedro_mexico
Consultor
Consultor
Mensagens: 225
Registrado em: Qua Dez 09, 2015 5:54 pm

Re: Pesquisa com datas

Mensagem por pedro_mexico » Sex Nov 13, 2020 6:13 pm

Boa noite Reinaldo,
Ja tentei adaptar esse codigo no meu formulario, mas nao sei a razao ele no meu formulario nao pesquisa direito, nao sei se é alguma coisa com a adaptaçao do codigo ou se é problema na planilha.
com o codigo adapatado, quando coloco as datas ele elimina uma ou outro valor e mostra valores fora das datas que faço o filtro, o formulario que enviei inicialmente esta com o codigo desse modelo que indicou



Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1433
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Pesquisa com datas

Mensagem por Reinaldo » Sáb Nov 14, 2020 2:00 pm

...as datas ele elimina...
Pelo que vi (ja bom tempo atraz, por sinal uma excelente solução mas que pessoalmente não utilizo, prefiro como propos o colega Mikel recarregar o controle com os dados filtrados) essa e a "essência" da rotina proposta; ou seja: excluir do listbox ou listiview não recordo; datas que não atendam ao critério e se não me engano eram 3 ou quatro rotinas para atender uma data, 2 datas, um texto e um texto + duas datas; assim e necessario atentar aos sinais"<" ou ">" ou "="


Reinaldo
:oops: :D :mrgreen: :geek:

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder