[Résolu] filtrage avec VBA
Bonjour à tous,
Je suis un novice de VBA mais je tente deux-trois trucs.
Je vous expose mon souci.
J'ai un tableau Excel avec deux feuilles.
La première (appelée "Accueil") contient simplement deux cellules (A1 et A2) avec Validation par liste (où je choisis les données que je veux afficher) et un bouton de commande, qui, quand je clique dessus, m'amène sur la deuxième feuille.
Cette deuxième feuille contient un tableau "base de données" (appelée "Table"), avec plusieurs champs de colonnes et de nombreuses lignes. Sur celui-ci, j'ai appliqué un filtre automatique.
La cellule A1 de "Accueil" reprend les différentes données de la colonne A de la feuille "Table".
La cellule A2 de "Accueil" reprend les différentes données de la colonne B de la feuille "Table".
J'ai écrit une macro permettant de filtrer sur A et B quand on choisit A1 et A2.
Puis, je l'ai améliorée pour filtrer uniquement sur la colonne A lorsque A2 de Accueil est vide. C'est là où ça me pose problème. Que ce soit vide ou non vide, il ne tient plus compte du filtre sur la colonne B.
J'espère que mes explications sont suffisamment claires.
Mes compétences en VBA sont assez limitées, mais si vous pouviez m'indiquer ce qui cloche (en gros, comment filtrer uniquement sur A si la A2 est vide et comment filtrer sur A et B si A2 n'est pas vide), je vous en serais reconnaissant !
Merci d'avance.
Bonjour à tous,
Je suis un novice de VBA mais je tente deux-trois trucs.
Je vous expose mon souci.
J'ai un tableau Excel avec deux feuilles.
La première (appelée "Accueil") contient simplement deux cellules (A1 et A2) avec Validation par liste (où je choisis les données que je veux afficher) et un bouton de commande, qui, quand je clique dessus, m'amène sur la deuxième feuille.
Cette deuxième feuille contient un tableau "base de données" (appelée "Table"), avec plusieurs champs de colonnes et de nombreuses lignes. Sur celui-ci, j'ai appliqué un filtre automatique.
La cellule A1 de "Accueil" reprend les différentes données de la colonne A de la feuille "Table".
La cellule A2 de "Accueil" reprend les différentes données de la colonne B de la feuille "Table".
J'ai écrit une macro permettant de filtrer sur A et B quand on choisit A1 et A2.
Code:
Private Sub OK_Click()
Sheets("Table").Select
Selection.AutoFilter Field:=1, Criteria1:=[A1]
Selection.AutoFilter Field:=2, Criteria1:=[A2]
End Sub
Puis, je l'ai améliorée pour filtrer uniquement sur la colonne A lorsque A2 de Accueil est vide. C'est là où ça me pose problème. Que ce soit vide ou non vide, il ne tient plus compte du filtre sur la colonne B.
Code:
Private Sub OK_Click()
Sheets("Accueil").Select
If A2 = "" Then
Sheets("Table").Select
Selection.AutoFilter Field:=1, Criteria1:=[A1]
Selection.AutoFilter Field:=2
Else
Sheets("Table").Select
Selection.AutoFilter Field:=1, Criteria1:=[A1]
Selection.AutoFilter Field:=2, Criteria1:=[A2]
End If
End Sub
J'espère que mes explications sont suffisamment claires.
Mes compétences en VBA sont assez limitées, mais si vous pouviez m'indiquer ce qui cloche (en gros, comment filtrer uniquement sur A si la A2 est vide et comment filtrer sur A et B si A2 n'est pas vide), je vous en serais reconnaissant !
Merci d'avance.
Dernière édition: