Página 1 de 2

UserForm Filtrar vários valores

Enviado: Qui Jul 11, 2019 8:42 am
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.

Re: UserForm Filtrar vários valores

Enviado: Sex Jul 12, 2019 10:14 am
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

Re: UserForm Filtrar vários valores

Enviado: Sex Jul 12, 2019 4:55 pm
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...

Re: UserForm Filtrar vários valores

Enviado: Sex Jul 12, 2019 5:56 pm
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

Re: UserForm Filtrar vários valores[RESOLVIDO]

Enviado: Seg Jul 15, 2019 4:00 pm
por leandropotter2019
Boa tarde!

Deu certo. Obrigado Reinaldo

Re: UserForm Filtrar vários valores

Enviado: Seg Jul 15, 2019 5:56 pm
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)...

Re: UserForm Filtrar vários valores

Enviado: Seg Jul 15, 2019 8:42 pm
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

Re: UserForm Filtrar vários valores[RESOLVIDO]

Enviado: Ter Jul 16, 2019 10:18 am
por leandropotter2019
Agora Esta resolvido!

Obrigado

Re: UserForm Filtrar vários valores

Enviado: Ter Jul 16, 2019 10:25 am
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

Re: UserForm Filtrar vários valores

Enviado: Ter Ago 13, 2019 5:16 pm
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?