Stopper le filtre des lignes vides SI

fenec

XLDnaute Impliqué
Bonjour le forum

Je reviens vers vous car malgré de nombreuses recherches je ne parviens pas à modifier mon code.

Alors voilà, je voudrais que le filtre des lignes vides ne se fasse pas si la cellule C24 n’est pas vide mais que le reste de la macro s’exécute.

Pour être plus précis.

Si C21 :C23 non vide, je filtre, ce qui me donne : une feuille à l’impression
Si C24 non vide, je ne filtre plus, ce que me donne : deux feuilles à l’impression

D’avance merci pour vos propositions.

Cordialement.

Fenec.
 

Pièces jointes

  • Essai.xls
    78 KB · Affichages: 40
  • Essai.xls
    78 KB · Affichages: 43
  • Essai.xls
    78 KB · Affichages: 38

frangy

XLDnaute Occasionnel
Re : Stopper le filtre des lignes vides SI

Bonsoir,

Tu peux rajouter une condition sur le nombre de cellules vides dans la plage C20 :C34
Code:
        '--- filtre les non vides en colonne A ---
        If .Range("C20:C34").SpecialCells(xlCellTypeBlanks).Count > 10 Then
            .Range("K2") = "=$C21<>"""""                 'critère filtre
            .Range("C20:C34").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            .Range("K1:K2"), Unique:=False
            .Range("K2").ClearContents
        End If
        ' Aperçu avant impression
        .PrintPreview

Cordialement.
 

fenec

XLDnaute Impliqué
Re : Stopper le filtre des lignes vides SI

Bonjour le forum, Frangy

Merci beaucoup viens de tester c’est nickel

Une autre question me viens à l’esprit serait-il possible de rajouter une autre condition qui serait que :

Si C21 seule ligne non vide ne pas supprimer les lignes C22 :C23 pour une histoire de rendu à l’impression

Excusez-moi d’abuser

Cordialement

Fenec
 

frangy

XLDnaute Occasionnel
Re : Stopper le filtre des lignes vides SI

Bonjour,

Tu peux tester comme ça.
L'impression sur 2 feuilles ne se fera que lorsque les 4 premières lignes seront renseignées.
Les 3 premières lignes sont imprimées dans tous les cas.
Code:
        '--- filtre les non vides en colonne A ---
        If .Range("C23:C34").SpecialCells(xlCellTypeBlanks).Count > 10 Then
            .Range("K2") = "=$C24<>"""""                 'critère filtre
            .Range("C23:C34").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            .Range("K1:K2"), Unique:=False
            .Range("K2").ClearContents
        End If
        ' Aperçu avant impression
        .PrintPreview
Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 615
Messages
2 090 243
Membres
104 465
dernier inscrit
Motuss