Je suis sur Excel 2010, j'ai fait une macro qui fait un filtre sur les données d'un tableau.
Comme je ne savais pas comment m'y prendre, j'ai testé avec l'enregistreur de macros.
A un moment, je filtre sur une colonne C : "choix1", "choix2", "choix3" mais le problème c'est que parfois le tableau peut avoir ces trois choix dans cette colonne C parfois il n'aura que "choix1" et "choix3" ou parfois juste "choix3".
Si un des choix est absent dans cette colonne, aucune ligne n'est sélectionnée. Alors qu'il devrait retourner les lignes des "choix1" et "choix3" par exemple si choix 2 est absent...
Je voulais savoir s'il existe une option que je ne connaitrai pas qui permettrait de ne pas bloquer le filtre et retourner des lignes même si un choix est absent...?
Sinon je pourrai fait une boucle pour incrémenter un Array si le choix existe dans la colonne mais ça me semble assez lourd...
...savoir s'il existe une option que je ne connaitrai pas qui permettrait de ne pas bloquer le filtre et retourner des lignes même si un choix est absent...
Quand tu pose une question soit plus clair. "A un moment, je filtre sur une colonne C"
Sur quelle colonne tu veux filtrer au juste???
2°) Le code que tu as mis est mal écrit.
Worksheets("Sheet1").Range("A1").AutoFilter Criteria1:=Array("choix1", "choix2", "choix3"), field:=3
M'étonne pas que ça plante. Tu met juste Range("a1") pour filtrer et ensuite tu lui impose la colonne C (3 en l'occurence).
Un Exemple. Et je ne suis pas 100% sûr, mais Excel n'accepte pas plus que 2 critères.
VB:
Sub test()
Dim plage As Range
With ("Sheet1")
Set plage = .Range("a1:n" & .Range("n" & Rows.Count).End(xlUp).Row)
plage.AutoFilter Field:=3, Criteria1:=Array("choix2"), Operator:=xlAnd, _
Criteria2:=Array("choix1", "choix3")
End With
End Sub
Comme tu peux le voir, c'est d'abord la plage, ensuite la colonne, et enfin le ou les crtitères.
À tester:
For i = 1 To 3
If IsEmpty("choix" & i) Then
J'ai trouvé une solution un peu lourde mais ça fonctionne.
Je teste si la valeur existe dans la colonne en question, si c'est le cas, je la mets dans un tableau que je recupère pour le mettre en paramètres dans criteria1.
Merci à tous pour votre aide ! (Comment mettre en résolu ?)