Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Filtro com mais de uma condição

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Marcos Monich
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qui Jul 21, 2011 11:37 pm

Filtro com mais de uma condição

Mensagem por Marcos Monich »

Olá boa noite a todos.

Sou iniciante em excel VBA e estou com um problema.
Criei um userform em que após ser filtrado o cód do cliente ele localiza quantas ocorrências existem e retorna este valor em um textbox e que também utiliza a linha da ocorrência e retorna valores em determinado textbox. Instalei um botão de rotação para que as ocorrências possam ser mudadas e com quando forem mudadas elas retornem os valores de acordo com a sua linha.
Criei a planilha com apenas um filtro e está da forma que eu quero, porém eu necessito de que ela possa ser filtrada por três filtros (cód cliente, ano, mês) em vez de apenas um e que sejam idependentes entre si e não sei como faze-lo.
a programação que utilizei para a tela de filtragem é esta:

Public MatrizResultados As Variant
Public TotalOcorrencias As Long
Dim TotalRegistro As Integer

'Este é o botão que aciona o filtro e CMB_COD é o valor que vai ser procurado.
Private Sub BTO_FILTRAR_Click()
If Me.CMB_COD.Text = "" Then
MsgBox "Digite um código para começar a pesquisa!"
Else
Call ProcuraRegistros(Me.CMB_COD.Text)
End If
End Sub

Private Sub ProcuraRegistros(ByVal TermoPesquisado As String)
Dim Busca As Range
Dim Primeira_Ocorrencia, Resultados As String

Set Busca = Sheets(1).Cells.Find(What:=TermoPesquisado, _
After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)

'Se a variável Busca não for vazia
If Not Busca Is Nothing Then

Primeira_Ocorrencia = Busca.Address
'Lista o primeiro Resultado na variável
Resultados = Busca.Row

'Esse loop pesquisa as próximas ocorrência para o termo pesquisado
Do
Set Busca = Sheets(1).Cells.FindNext(After:=Busca)

'Condição para não listar o primeiro resultado, pois já foi listado acima
If Not Busca.Address Like Primeira_Ocorrencia Then
Resultados = Resultados & ";" & Busca.Row
End If
Loop Until Busca.Address Like Primeira_Ocorrencia

MatrizResultados = Split(Resultados, ";")

'Atualiza o botão de rotação
BTO_TOTAL.Max = UBound(MatrizResultados)

'Habilita o botão de rotação
BTO_TOTAL.Enabled = True

'Atualiza o cantador de registro
ROT_TOTAL.Caption = "1 de" & UBound(MatrizResultados) + 1
CXT_TOTAL.Value = UBound(MatrizResultados) + 1
'Os campos recebem o conteúdo encontrado
CXT_DATA.Text = Sheets(1).Cells(MatrizResultados(0), 2).Value
CXT_NOME.Text = Sheets(1).Cells(MatrizResultados(0), 4).Value
CXT_MOTORISTA.Text = Sheets(1).Cells(MatrizResultados(0), 6).Value
CXT_PLACA.Text = Sheets(1).Cells(MatrizResultados(0), 7).Value

'Se não for encontrado nenhum registro
Else
'Desabilita o botão de rotação
BTO_TOTAL.Enabled = False
'Zera o cantador de registro
ROT_TOTAL.Caption = ""

'Limpa os campos do formulário
CXT_MOTORISTA.Text = ""
CXT_PLACA.Text = ""
CXT_NOME.Text = ""
CXT_DATA.Text = ""
CXT_TOTAL.Text = ""
CMB_COD.Text = ""

MsgBox "Nenhum resultado para ' " & TermoPesquisado & " ' foi encontrado."
End If
End Sub

se alguém pode me ajudar?


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
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Filtro com mais de uma condição

Mensagem por Mauro Coutinho »

Fica mais fácil se puder postar o modelo.

[]s


Marcos Monich
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qui Jul 21, 2011 11:37 pm

Re: Filtro com mais de uma condição

Mensagem por Marcos Monich »

Estou enviando a planilha.
Está funcionando do jeito que eu quero porém eu só preciso que funcione aqueles outros Combobox de Mês e Ano juntamente com o cód do cliente e que eles sejam independente entre si, ou seja, que eu possa filtrar usando todos os três como também apenas um deles.
Obrigado.


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Filtro com mais de uma condição

Mensagem por Mauro Coutinho »

Faltou o arquivo ???
[]s


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.


Marcos Monich
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qui Jul 21, 2011 11:37 pm

Re: Filtro com mais de uma condição

Mensagem por Marcos Monich »

Adiantamento de Carga.rar
Filtro
(101.2 KiB) Baixado 296 vezes
Adiantamento de Carga.rar
Filtro
(101.2 KiB) Baixado 296 vezes
Estou enviando a planilha para melhor visualização!

A dúvida é a seguinte: O combobox de código de cliente já está ativado, no entanto eu gostaria de fazer o filtro também pelos combobox de ANO e MÊS, simultâneamente e independentemente.

Baixem a planilha e perceberam a dúvida, desde já obrigado!


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