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

UserForm Filtrar vários valores

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

UserForm Filtrar vários valores

Mensagem por leandropotter2019 »

Bom dia!

Na planilha em Anexo, gostaria de usar o UserForm para filtrar os valores entre duas Datas e também os valores de outro elemento. Consegui fazer filtrar entre as datas mas não consigo para o outro elemento, que no caso é "fornecedor". Também preciso que na impressão o rodapé esquerdo contenha: "Filtro: " , Data da célula H1, " Até ", Data da célula I1.
Anexos
teste Filtro.rar
(30.92 KiB) Baixado 294 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: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: UserForm Filtrar vários valores

Mensagem por Reinaldo »

..para o outro elemento..
Para esse "elemento" inclui na abertura do formulario, especificamente o carregamento de duas empresas
a saber:

Código: Selecionar todos

Private Sub UserForm_Initialize()
Me.ComboBox1.AddItem "empresa1"
Me.ComboBox1.AddItem "empresa2"
End Sub
Referente ao filtro experimente:

Código: Selecionar todos

Private Sub CommandButton1_Click()
Dim data_ini As Date
Dim data_fin As Date

data_ini = Format(TextBox1, "mm/dd/yyyy")
data_fin = Format(TextBox2, "mm/dd/yyyy")

ActiveSheet.Range("A4:D5000").AutoFilter Field:=1, Criteria1:= _
        ">=" & data_ini, Operator:=xlAnd, Criteria2:="<=" & data_fin
ActiveSheet.Range("A4:D5000").AutoFilter Field:=3, Criteria1:=Me.ComboBox1.Value

TextBox4 = Range("G1").Value
Range("H1").Value = Format(data_ini, "dd/mm/yyyy")
Range("I1").Value = Format(data_fin, "dd/mm/yyyy")
End Sub
Para o cabeçalho experimente

Código: Selecionar todos

Public Sub ConfigurarImpressao()
Dim UltimaLinha As Long

UltimaLinha = Cells(Rows.Count, "C").End(xlUp).Row
ActiveSheet.PageSetup.LeftFooter = "Filtro: da data " & [H1] & " até data " & [I1]
ActiveSheet.PageSetup.PrintArea = Range("$A$3:$D$" & UltimaLinha).Address
End Sub


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

Re: UserForm Filtrar vários valores

Mensagem por leandropotter2019 »

Boa Tarde Reinaldo!

Funcionou, mas só tem um detalhe, quando o ComboBox1 que tem o valor referente a "Fornecedor" estiver vaziu, ou seja, não tem fornecedor selecionado, quero filtrar somente pelas datas, mas para puxar todos os fornecedores referentes a estas datas. Se deixo sem preencher o ComboBox1 queria que filtrasse somente as datas, mas esta deixando a tabela em branco...


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

Re: UserForm Filtrar vários valores

Mensagem por Reinaldo »

Experimente

Código: Selecionar todos

Private Sub CommandButton1_Click()
Dim data_ini As Date
Dim data_fin As Date
Dim Fornec As String
data_ini = Format(TextBox1, "mm/dd/yyyy")
data_fin = Format(TextBox2, "mm/dd/yyyy")
If ComboBox1.Value = "" Then
    Fornec = "*"
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


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.


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

Re: UserForm Filtrar vários valores[RESOLVIDO]

Mensagem por leandropotter2019 »

Boa tarde!

Deu certo. Obrigado Reinaldo


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

Re: UserForm Filtrar vários valores

Mensagem por leandropotter2019 »

Desculpe Reinaldo te incomodar, mas tem mais um probleminha.
Na lista de datas que tem ali na planilha, se eu coloco de 01/02/2019 até 30/04/2019, puxa vaziu o filtro ao invés de puxar as datas de 1/02/2019 até 01/04/2019(que é a ultima antes de 30/04/2019)...


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

Re: UserForm Filtrar vários valores

Mensagem por Reinaldo »

Altere a definição de dataini e datafin para string

Código: Selecionar todos

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

data_ini = Format(TextBox1.Value, "mm/dd/yyyy")
data_fin = Format(TextBox2.Value, "mm/dd/yyyy")
If ComboBox1.Value = "" Then
    Fornec = "*"
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


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

Re: UserForm Filtrar vários valores[RESOLVIDO]

Mensagem por leandropotter2019 »

Agora Esta resolvido!

Obrigado


isaacnobre
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Ter Jul 16, 2019 10:22 am

Re: UserForm Filtrar vários valores

Mensagem por isaacnobre »

Olá galerinha!

Estou montando uma planilha de excel com vários filtros, porém apenas o filtro de data acusa erro.
Mensagem de erro: " Erro em tempo de execução 1004 ; Método AutoFilter da classe Range Falhou"
Em seguida clico em DEPURAR e aparece o erro(curiosamente só no da data)

Caso seja preciso acessar a planilha armazenei na nuvem no link http://www.filedropper.com/programa5e12 ... rsion1xlsb

O filtro é na aba RELATÓRIO DE AULAS

Desde já agradeço a ajuda


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

Re: UserForm Filtrar vários valores

Mensagem por leandropotter2019 »

Bosa Tarde!

Eu preciso usar uma variavel com numero ao inves desta "Fornecedor", numero de pedido, exemplo: 1.
Como posso fazer para filtrar?


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