2017-09-18 3 views
0

Je souhaite utiliser VBA pour filtrer une feuille de sauvegarde de 2 colonnes, avec des critères obtenus à partir des valeurs d'une feuille différente du même classeur.Utilisation de VBA pour l'autofiltre Plusieurs colonnes, avec des valeurs de différentes feuilles

code utilisé est:

Sub FilterOnCellValue() 

With Sheets("Dump") 
    .Range("A1:Z10000").AutoFilter Field:=9, Criteria1:=Sheets("ControlPlanning").Range("C1").Value, Field:=23, Criteria1:=Sheets("ControlPlanning").Range("C4").Value 
End With 

End Sub 

Pour une raison quelconque ce code filtre une seule colonne, alors qu'il devrait être le filtrage des colonnes avec le numéro 9 et 23 sur 2 valeurs différentes. Comme je veux apprendre de cela, expliquer mon erreur de pensée dans ce morceau de VBA. La version Excel est 2013, si cela fait une différence.

+1

double possible de [? Filtrage multiple dans Excel VBA] (https://stackoverflow.com/questions/12040906/multiple-filtering-in-excel -vba) –

+0

Conformément à [Range.AutoFilter MSDN] (https://msdn.microsoft.com/fr-fr/vba/excel-vba/articles/range-autofilter-method-excel?f=255&MSPPError=-2147217396) vous ne pouvez pas deux fois Field parametter .. –

+0

@Peh, aucun critère de valeur là. – RobExcel

Répondre

2

Essayez de séparer la syntaxe 2 lignes:

Sub FilterOnCellValue() 

With Sheets("Dump").Range("A1:Z10000") 
    .AutoFilter Field:=9, Criteria1:=Sheets("ControlPlanning").Range("C1").Value 
    .AutoFilter Field:=23, Criteria1:=Sheets("ControlPlanning").Range("C4").Value 
End With 

End Sub