Notifications
Clear all

VBA filtro vários critérios

6 Posts
3 Usuários
0 Reactions
2,407 Visualizações
(@neto1a)
Posts: 28
Eminent Member
Topic starter
 

Estou criando um botão que filtra uma tabela de dados com vários critérios, esses critérios são contém. Porém, esse VBA terá até uns 10 critérios. É possivel realizar isso?
Conforme anexo, seria fazer o filtro com todos os critérios abaixo, todos são contém.

Existe solução para isso?
Agradeço desde já!!

 
Postado : 22/02/2016 6:50 am
(@messiasmbm)
Posts: 223
Estimable Member
 

O exemplo que coloca tem que ser real com a sua situação e no arquivo não vi os dez critérios...

 
Postado : 22/02/2016 11:22 am
(@neto1a)
Posts: 28
Eminent Member
Topic starter
 

Boa tarde, nesse caso tem 13 critérios. É que existiram diversas guias, e cada uma terá os critérios diferentes. Eu não posso mandar a planilha original se não eu ganho a conta ;/

 
Postado : 22/02/2016 11:28 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Tente algo asim..

Sub AleVBA_19248()
Dim lastrow As Long
    
    lastrow = Cells(Rows.Count, "A").End(xlUp).Row
    
    'Application.ScreenUpdating = False
        With Worksheets("dados")
            .Range("E:E").Clear
            .Range("E2").Formula = "=IFERROR(MATCH(LEFT(A2,11),criterios!$A$2:$A$14,0),0)"
            .Range("E2").AutoFill Destination:=.Range("E2:E" & lastrow)
            .Range("E2:E" & lastrow).Value = .Range("E2:E" & lastrow).Value
            [E1].Value = "AleVBA"
            .AutoFilterMode = False
            .Range("E1:E" & .Cells(Rows.Count, 5).End(xlUp).Row).AutoFilter 1, ">=1", xlWhole
            .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, "D")).SpecialCells(12).Copy Sheets("rasultado").Range("A2")
            .AutoFilterMode = False
        End With
   ' Application.ScreenUpdating = True
End Sub

Não deu tempo de testar
Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/02/2016 11:30 am
(@neto1a)
Posts: 28
Eminent Member
Topic starter
 

Alexandre, testei e não funcionou ;/

Eu fiz o seguinte código. Porém o mesmo só funciona com dois critérios, se eu coloco mais ele filtra porém não retorna nada na tabela. Por que acontece isso?

    
Windows("CARGA TOTAL.xlsx").Activate
      On Error Resume Next
    ActiveSheet.ShowAllData
    ActiveSheet.Range("$A$1:$J$2999").AutoFilter Field:=7, Criteria1:=Array( _
        "0378-A01-01*", "0378-A01-02*") _
        , Operator:=xlFilterValues
    ActiveWindow.SmallScroll Down:=-9
End Sub
 
Postado : 22/02/2016 2:28 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!!

Eu apenas usei uma formula, onde nesta coluna que está a formula (via VBA), o filtro vai capturar os critérios da guia "criterios", copiar os dados e colar na guia desejada, foi isso que eu entendi.

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/02/2016 2:45 pm