Filtrer les valeurs d'une colonne en fonction des valeurs d'une autre colonne

Fermé
Cacophonie - 1 déc. 2020 à 15:55
 Cacophonie - 3 déc. 2020 à 09:11
Bonjour,
Je suis complètement novice sur VBA et je dois réalisé une petite macro en urgence sur un gros tableau...
voici mon code avec un tableau simplifié pour mieux comprendre :

Sub Tri()

ActiveSheet.Range("$A$1:$D$10").AutoFilter Field:=3, Criteria1:= _
"=*" & "Jean" & "*", Operator:=xlAnd

If Rows(4).Value Like "*56*" Then
ActiveSheet.Rows(3).AutoFilter Field:=3, Operator:=xlAnd
End If

End Sub

En gros je voudrais qu'il me tri dans la colonne 3 toutes les cellules qui contiennent "Jean" et je voudrais qu'en plus il me filtre les prénoms de la colonne 3 si dans la colonne age (4eme) j'ai 56.

(J'ai fait un copié-collé et je ne sais pas à quoi correspond le "field" c'est une colonne ?)

Bien sûr le code simple ne marche pas mais je pense que la formulation est simple et ma novicité fait que je galère pour pas grand chose...

Merci pour vos retours par avance !

4 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
Modifié le 1 déc. 2020 à 23:14
Re,

Plus ou moins oui...
Le code filtre les lignes 1 à 10 avec comme critère : la colonne 3 contient le mot "Jean"
puis il filtre les lignes affichées (celle qui restent du premier filtre) avec comme critère : la colonne 4 qui est égale à 56
Résultat : ne restent que les lignes dont la colonne 3 contient "Jean" et dont la colonne 4 est égale à 56.

L'opérateur n'a rien à voir il y a deux filtres tout simplement.

1