Notifications
Clear all

Pre filtrar Listview por mes

7 Posts
2 Usuários
0 Reactions
2,287 Visualizações
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Boa tarde amigos,

Estou montando um projeto onde registro os debitos e creditos dos motoqueiros da empresa, neste projeto tudo e salvo em uma planilha unica, que com o passar do tempo
acumulara registros de todos os meses e ate de anos, e ai esta o meu problema, tem como criar uma rotina que prefiltre o listview com os registros de um mes especifico???

Como na coluna data, o formato do texto e dd/mm/yyyy, como posso dizer para ele que quero carregado somente os registros do mes 3 ou março por exemplo?

Em varios exemplos na rede se faz este filtro com data inicial e final, mas tem como fazer por mes? ou terei que criar uma coluna mes para chamar o filtro por ela?
Em um outro exemplo de projeto, os registros eram salvos em planilhas nominadas por mes, plan março, plan abril,..., mas ai na hora de filtrar o listview, eu teria que indicar por meio de comando a plan para i listview carregar, ai seria perfeito, é possivel??? seria otimo este caso.

Lembrando que apos este pre filtro, tenho outros dois controles que filtraram ainda mais o listview ate chegar no resultado pretendido.
Ideias senhores?

Obrigado a todos.

Fabio

 
Postado : 25/03/2012 11:53 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Na da ajuda do VBA temos - Função Date, de uma olhada e encontrara tamebm as funções Day, Month, Year :

Para pesquisar por mes, ou você faz como citou, cria uma coluna somente com o Mes e filtra pela mesma, acho que será mais simples, ou terá de capturar o Mes das Datas e Joga-las em uma variável, e realizar a filtragem.

Sub DateTipos()

    Dim MyDate As Date

    MyDate = "25/03/2012"
    
    MsgBox "A Data é : - " & MyDate
    MsgBox "O Dia  é :-" & Day(MyDate)  'Retorna o DIA
    MsgBox "O Mes é :-" & Month(MyDate) 'Retorna o MES
    MsgBox "O Ano é :-" & Year(MyDate) 'Retorna o ANO
    
    MsgBox "Consulte na Ajuda as Date, Day, Month,Year"

End Sub

[]s

 
Postado : 25/03/2012 12:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!!

Eu uma vez fiz uma gambiarra, não tinha nada a ver com ListView, quem sabe sirva para alguma coisa.

A ideia seria pegar uma coluna com datas, e trazer para uma coluna ao lado, somente ou (Mês, Ano, Dia).

Option Explicit

    Const FirstDataRow As Long = 2
    Const DateCol As String = "M"
    Const ResultCol As String = "P"

Public Sub WriteMonth()

    Dim R As Long
    Dim D As Variant
    
    With ActiveSheet
        For R = FirstDataRow To LastRow("M")
            D = .Cells(R, DateCol).Value
            If Len(D) And IsDate(D) Then
                .Cells(R, ResultCol).Value = Month(D)
            End If
        Next R
    End With
End Sub

Private Function LastRow(ByVal Col As String) As Long
    LastRow = ActiveSheet.Cells(65536, Col).End(xlUp).Row
End Function
 
Postado : 25/03/2012 1:19 pm
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Senhores,

Fiz a adaptaçao da seguinte forma:

Adicionei uma combobox(Periodo), que quando abre o form(Userform1) faz com que a listview ja filtre por mes e ano, ate ai perfeito, mas quando altero na comboboxCampo para o segundo criterio e na textbox2 começo a digitar a referencia, o listview carrega todos os registro do inicio, ignorando o pre filtro.

E Aqui que entram os senhores. :?

Obrigado

Fabio Pradella

 
Postado : 25/03/2012 7:56 pm
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Entao, falamos aqui neste topico da necessidade de se criar uma coluna referenciando o mes e ano como eu fiz, ta, mas e a segunda opçao de criar um comando
( Combobox ), para indicar ao listview qual plan carregar e possivel, assim eu iliminaria a questao filtro por data, visto que cada plan, arquivaria dados de um unico mes.

Fica a pergunta.

 
Postado : 26/03/2012 7:26 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Fabio, se eu não estiver enganado, esta questão :

mas e a segunda opçao de criar um comando ( Combobox ), para indicar ao listview qual plan carregar e possivel, assim eu iliminaria a questao filtro por data, visto que cada plan, arquivaria dados de um unico mes.

Foi discutida no tópico abaixo:
preencher listview com mes corrente
viewtopic.php?f=23&t=3798

É só utilizar a mesma lógica, alterando somente a questão de captar qual o mes corrente, atribuindo a Variável ao Mes que estiver selecionado no Combobox.

[]s

 
Postado : 26/03/2012 8:24 pm
(@fabioprade)
Posts: 273
Reputable Member
Topic starter
 

Boa Noite Mauro,

se eu te contar que tinha acabado de sair do topico que vc mencionou, foi ate engraçado ler a tua resposta.

Mauro, ate entendo bem o que quero, mas na hora de colocar em pratica ta dificil, mas entao, em relaçao a este topico citado, nos trabalhavamos em cima do segundo exemplo, aquele com uma plan para cada mes, que acabeu deixando de lado achando que desta forma com uma plan unica seria mais facil, de uma certa forma sim, mas analizando bem, nos dois casos vou ter o mesmo problema ao utilizar o formulario de pesquisa do Jose, que e perfeito, mas no meu caso nao me permite fazer filtragens em cascata, ex:

Neste projeto atual( Plan unica ), ao ativar o form ja filtro por data(mes,ano), mas gostaria de continuar filtrando, (Motoqueiro, Fabio), ai quero saber
( Gasolina ).
Se entendi bem, e uma questao de restricoes do formulario, logo entao seja com plan unica ou plan por mes, poderei fazer sempre um unico filtro, estou certo???

 
Postado : 26/03/2012 8:41 pm