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.

Filtro Avançado com VBA

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
leandropotter2019
Colaborador
Colaborador
Mensagens: 23
Registrado em: Seg Jun 03, 2019 11:22 am

Filtro Avançado com VBA

Mensagem por leandropotter2019 » Qui Ago 15, 2019 10:26 am

Bom dia!

Na planilha em anexo, gostaria de filtrar os valores de data e fornecedor, e quando eu deixar vaziu o textBox ou ComboBox, que filtrasse tudo, porém de deixo vaziu, nao filtra nada. Quando deixo as datas, mas nao coloco o fornecedor (que será um valor numerico) nao filtra nada, somente se preencher tudo no UserForm..

Desde Já muito obrigado
Anexos
teste Filtro.rar
(33.69 KiB) Baixado 125 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
Reinaldo
Jedi
Jedi
Mensagens: 1269
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Filtro Avançado com VBA

Mensagem por Reinaldo » Qui Ago 15, 2019 12:40 pm

Uma possibilidade:

Código: Selecionar todos

Private Sub CommandButton1_Click()
Dim data_ini As String
Dim data_fin As String
Dim Fornec As String

If TextBox1.Text <> "" Then
data_ini = Format(TextBox1, "mm/dd/yyyy")
Else
data_ini = Format("01/01/1900", "mm/dd/yyyy")
End If

If TextBox1.Text <> "" Then
data_fin = Format(TextBox2, "mm/dd/yyyy")
Else
data_fin = Format("12/31/2099", "mm/dd/yyyy")
End If

If ComboBox1.Value = "" Then
    Fornec = ">0"
Else
    Fornec = ComboBox1.Value
End If
ActiveSheet.Range("A4:D5000").AutoFilter Field:=1, Criteria1:= _
        ">=" & data_ini, Operator:=xlAnd, Criteria2:="<=" & data_fin
ActiveSheet.Range("A4:D5000").AutoFilter Field:=3, Criteria1:=Fornec

TextBox4 = Range("G1").Value

Range("H1").Value = Format(data_ini, "dd/mm/yyyy")
Range("I1").Value = Format(data_fin, "dd/mm/yyyy")

End Sub


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

leandropotter2019
Colaborador
Colaborador
Mensagens: 23
Registrado em: Seg Jun 03, 2019 11:22 am

Re: Filtro Avançado com VBA - RESOLVIDO

Mensagem por leandropotter2019 » Qui Ago 15, 2019 2:31 pm

Boa Tarde!

Deu certo, até tinha descoberto um jeito para a variavel de numero, e da data pense em algo parecido, mas nao tinha conseguido.

Muito 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