Masquer Ligne sous 2 conditions

Bonjour à toutes et tous,

Je cherche à adapter le code coi dessous pour masquer des lignes sous 2 conditions (je joins un fichier exemple avec mise en évidence de la ligne à masquer).

Je veux donc pouvoir masquer toutes les lignes qui contiennent la valeur 0 à la fois en colonne B et C.

Je voudrais que ce soit dynamique (sans passer par un bouton qui lancerait la macro) car les valeurs 0 dans le fichier final seront pour certaines le résultat d'un calcul par formule.

Auriez vous une solution à me proposer

Merci

Cordialement

Hugues

Private Sub Worksheet_Calculate()
    Dim plage As Range, c As Range
    Set plage = [B3:C16]
    For Each c In plage
        If c.Value = "" Then
            c.EntireRow.Hidden = True
        Else
            c.EntireRow.Hidden = False
        End If
    Next c
    Set plage = Nothing
End Sub

Bonjour,

A essayer.

Private Sub Worksheet_Calculate()
    For Each c In [B3:B16]
        If c.Value = "" And c.Offset(0, 1).Value = "" Then
            c.EntireRow.Hidden = True
        Else
            c.EntireRow.Hidden = False
        End If
    Next c
End Sub

NB- Je n'ai pas regardé le fichier. Attention que si la cellule est vide, "" ou 0 peuvent s'avérer équivalents, mais plus tout à fait le cas si une de ces valeurs est explicitement affectée.

plage n'apparaît plus ci-dessus (on peut économiser une variable...) mais noter que au 'End Sub' toutes les variables d'une procédure (sauf les variables statiques s'il y en a) sont réinitialisées, donc les réinitialiser en fin de procédure est superflu.

Cordialement.

Bonjour Mferrand,

Je viens de tester ta proposition mais sans succès.

Merci pour la simplification du code

Les valeurs sont de vrai 0 comme dans le fichier joint

Cordialement

Hugues

Dans ce cas :

If c.Value = 0 And c.Offset(0, 1).Value = 0 Then

et là ça fonctionne (je l'ai vérifié).

J'appelle tout de même ton attention sur le fait que la ligne étant masquée, tu ne peux plus modifier la valeur manuellement (sauf à démasquer manuellement).

Cordialement.

Bonsoir mferrand,

Merci beaucoup cela fonctionne parfaitement et conformément à mon attente.

Quand à l'alerte sur les cellules rendues inaccessibles par le masquage ce n'est pas un problème même au contraire l'objectif.

En effet dans le fichier final ces données sont remplies via formule faisant référence à une autre feuille du classeur (la base).

Merci

A bientôt

Hugues

Rechercher des sujets similaires à "masquer ligne conditions"