Microsoft 365 VBA: Filtrer sur les données vide

VBA_dev_Anne_Marie

XLDnaute Occasionnel
Bonjour,

Je souhaite appliquer un filtre sur la colonne 19 et la colonne 3.
Plus précisément, dans la colonne 3, je ne souhaite pas afficher les cellules vides, mais mon code ne marche pas, je récupère toujours les cellules vides dans la colonne 3 :

VB:
  With Worksheets("RESULTATS")
       If Not .AutoFilterMode Then .Range("A1").AutoFilter Field:=19, Criteria1:=">0.05"
       If Not .AutoFilterMode Then .Range("C1").AutoFilter Field:=3, Criteria1:="<>' '"
       End With

Merci pour votre aide !
 

vgendron

XLDnaute Barbatruc
bonjour
ton critère sur la colonne 3 filtre les lignes qui ne contiennent pas d'espace..
essaie ceci
If Not .AutoFilterMode Then .Range("C1").AutoFilter Field:=3, Criteria1:="<>"""

sinon, tu utilises l'enregistreur de macro pour savoir quelle syntaxe il faut appliquer
 

VBA_dev_Anne_Marie

XLDnaute Occasionnel
bonjour
ton critère sur la colonne 3 filtre les lignes qui ne contiennent pas d'espace..
essaie ceci
If Not .AutoFilterMode Then .Range("C1").AutoFilter Field:=3, Criteria1:="<>"""

sinon, tu utilises l'enregistreur de macro pour savoir quelle syntaxe il faut appliquer
Merci, mais ça ne marche pas, j'ai des cellules vides :
VB:
       With Worksheets("RESULTATS")
       If Not .AutoFilterMode Then .Range("A1").AutoFilter Field:=19, Criteria1:=">0.05"
       If Not .AutoFilterMode Then .Range("C1").AutoFilter Field:=3, Criteria1:="<>"""
       End With
 

VBA_dev_Anne_Marie

XLDnaute Occasionnel
J'ai l'impression que l'application du deuxième filtre désactive le premier :

VB:
 With Worksheets("RESULTATS")
       If Not .AutoFilterMode Then .Range("A1").AutoFilter Field:=19, Criteria1:=">0.05"
       If Not .AutoFilterMode Then .Range("A1").AutoFilter Field:=3, Criteria1:="<>"
       End With
 

VBA_dev_Anne_Marie

XLDnaute Occasionnel
comment peux tu avoir accès au champ 19 de la cellule A1?
VB:
.Range("A1").AutoFilter Field:=19

Code:
 Range("$A$1:$B$7").AutoFilter Field:=2, Criteria1:="<>" 'colonne B pas vide
 Range("$A$1:$B$7").AutoFilter Field:=1, Criteria1:="e" 'Colonne A= "e"
Bonjour,

J'applique ce code, ça a l'air de marcher , mais je ne sais pas si c'est correct :
VB:
 'Filtre
 
       With Worksheets("RESULTATS")
       If Not .AutoFilterMode Then .Range("A1:AQ" & DernLigne).AutoFilter Field:=19, Criteria1:=">0.05"
       .Range("A1:AQ" & DernLigne).AutoFilter Field:=3, Criteria1:="<>"
       End With

En fait, je ne comprends pas pourquoi on ne met pas AND dans le code : Criteria1:=">0.05" AND .Range... Si je mets AND la ligne apparaît en rouge.

Merci pour votre aide !
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 222
Membres
103 158
dernier inscrit
laufin