Macro masquer lignes sur plusieurs feuilles

Bonsoir à tout le forum,
Je voudrais mettre en place une macro pour masquer des lignes sur plusieurs feuilles mais avec des critères différents permettant le masquage.

Sur une feuille cela dépend de la ligne L vide pour masquer, sur une autre feuille c'est la I, sur une autre c'est la T.

Avec la macro suivante, je cache sur chaque feuille. Comment faire pour cacher sur toutes avec une seule macro?

Sub Cacher()

    Dim Plage As Range
    Dim Cel As Range

    With ActiveSheet: Set Plage = .Range(.Cells(2, 12), .Cells(.Rows.Count, 12).End(xlUp)): End With
    With Sheets("Suivi Forfait Epilation"): Set Plage = .Range(.Cells(2, 9), .Cells(.Rows.Count, 9).End(xlUp)): End With
    For Each Cel In Plage

        If Cel.Value = "" Or Cel.Value = 0 Then Cel.EntireRow.Hidden = True

    Next Cel

End Sub

Est-il également possible d'intégrer cette macro complète à une macro qui enregistre mon fichier à la fermeture?

Sub Enreg()
Dim Path As String, valeur As String
Path = ActiveWorkbook.Path & "\"
valeur = "Fichier Client" & " - " & Format(Date, "yyyy-mmyy") & ".xlsm"
ThisWorkbook.SaveAs Path & valeur
End Sub

Merci pour votre aide

Bonsoir crazylib ,

Pour le masquage ou non des lignes :

Sub MasquerLignes()
Const Feuilles = "Suivi Forfait Epilation;Feuil2;Feuil3"    ' liste des feuilles concernées
Const Colonnes = "I;12;T"        ' pour chaque feuille, la colonne à examiner (lettre/nombre)
Dim tCol, tFeuil, col, i&, plage As Range, x

   Application.ScreenUpdating = False
   tCol = Split(Colonnes, ";"): tFeuil = Split(Feuilles, ";")     ' transformer les constantes texte en tableau
   For i = 0 To UBound(tFeuil)      ' boucle sur les feuilles
      With Sheets(tFeuil(i))        ' avec la feuille concernée i
         If IsNumeric(tCol(i)) Then col = Val(tCol(i)) Else col = tCol(i)  ' la colonne à examiner est la colonne col
         Set plage = .Range(.Cells(2, col), .Cells(.Rows.Count, col).End(xlUp))  ' plage à examiner
         For Each x In plage: x.EntireRow.Hidden = (x = "" Or x = 0): Next       ' boucle de masquage ou non
      End With
   Next i
End Sub

Re,

Pour supprimer les lignes avant enregistrement :

Sub Enreg()
Dim Path As String, valeur As String
   MasquerLignes        ' appel de la procédure de masquage des lignes
   Path = ActiveWorkbook.Path & "\"
   valeur = "Fichier Client" & " - " & Format(Date, "yyyy-mmyy") & ".xlsm"
   ThisWorkbook.SaveAs Path & valeur
End Sub

Un grand merci. C'est exactement ça.

Une petite question toutefois.
Lorsque je fais une modification et que je ferme le fichier, si je refuse l'enregistrement, la macro se met en erreur. Je sais qu'il n'est pas logique de faire une modification et de ne pas vouloir l'enregistrer mais si une de mes collègues fait une erreur sur le fichier et qu'elle ne veut pas enregistrer cette erreur est-il possible de modifier le macro enreg pour que si je refuse l'enregistrement la macro s'arrête?

Rechercher des sujets similaires à "macro masquer lignes feuilles"