Macro pour masquer lignes dont la valeur est 0

Bonjour à tous,

Dans l'onglet nommé ''Annual Budget'' j'aimerais créer une macro pour masquer les lignes 14 à 37 (seulement) dont le total de la colonne E pour ces lignes est à 0$, tout en tenant compte que ces lignes (14 à 37) doivent apparaître si le total est plus de 0$, aussi est-ce possible que cette macro soit automatique, je veux dire par là que l'on ai pas besoin de cliquer sur le bouton ''Run'' de la Macro.

Je ne connais pas grand chose au macro de Excell, alors si vous pouviez être détaillé dans votre explication cela m'aiderait beaucoup. Vous trouverez mon fichier joint, n'hésitez pas à me revenir si vous avez des questions.

Un gros merci à l'avance à tous ceux qui pourront m'aider.

Bonsoir Marjo, bonsoir le forum,

En pièce jointe ton fichier modifié avec les deux événementielles BeforeDoubleClick et Change placées dans le composant Feuil4 (ANNUAL BUDGET) :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'au double-clic dans l'onglet
'si le double-clic a lieu dans la plage C1:F1, affiche toutes les lignes
If Target.Address = "$C$1:$F$1" Then Cancel = True: Rows.Hidden = False
End Sub

Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dasn l'onglet
For I = 14 To 37 'boucle sur toutes les lignes I de 14 à 37
    Rows(I).Hidden = Cells(I, "F").Value = 0 'la ligne se masque si la valeur en colonne F vaut zéro, sinon elle s'affiche
Next I 'prochaine ligne de la boucle
End Sub

La première va masquer les lignes (14 à 37) où la colonne F vaut zéro, chaque fois que tu modifieras dans l'onglet ANNUAL BUDGET.

La seconde te permettra de réafficher toutes les lignes en double-cliquant sur le titre ANNUAL BUDGET en C1:F1

Le fichier :

11marjo-ep-v01.xlsm (154.72 Ko)


Bonjour,

Et en mettant simplement un filtre?

Bonjour,
Une autre proposition avec procédure événementielle.
Elle agit à l'activation de la feuille sans intervention manuelle.
Cdlt.

Private Sub Worksheet_Activate()
Dim lo As ListObject, n As Long
    Application.ScreenUpdating = False
    Set lo = Me.ListObjects(1)
    With lo
        .DataBodyRange.EntireRow.Hidden = False
        For n = 8 To 31
            If .ListRows(n).Range.Cells(1, 3).Value = 0 Then .ListRows(n).Range.EntireRow.Hidden = True
        Next n
        .Range.Cells(1, 1).Select
    End With
End Sub

Bonjour Marjo1967, Fcyspm30, Thauthème, Jean-Eric,

En reprenant la suggestion de Fcyspm30, par macro.

Et en mettant simplement un filtre?

Private Sub Worksheet_Activate()
ActiveSheet.ListObjects("TableClé").Range.AutoFilter Field:=1, Criteria1:="<>0", Operator:=xlFilterValues
End Sub

Idem que Jean-Eric, sur activation de la feuille Annual Budget. Le code ci-dessus se trouvant sur cette feuille.

Rechercher des sujets similaires à "macro masquer lignes valeur"