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?