Masquer des ligne en fonction d'une cellule

Bonjour,

Je cherche à masquer des lignes automatiquement en fonction du résultat d'une cellule.

J'ai essayé çà :

Private Sub Worksheet_Change(ByVal Target As Range)

    If Range("AR8").Value = "J" Then
        Rows("12:15").Hidden = False
        Rows("16:154").Hidden = True
    Else
        Rows("12:154").Hidden = False
    End If

    If Range("AR8").Value = "L1" Then
        Rows("12:15").Hidden = True
        Rows("16:18").Hidden = False
        Rows("19:154").Hidden = True
    Else
        Rows("12:154").Hidden = False
    End If

    If Range("AR8").Value = "L2" Then
        Rows("12:18").Hidden = True
        Rows("19:30").Hidden = False
        Rows("31:154").Hidden = True
    Else
        Rows("12:154").Hidden = False
    End If

End Sub

Sauf que cette marco ne fonctionne que dans le cas ou AR8 = L2.

Merci d'avance à qui pourra m'aider

Bonjour

y.first a écrit :

Sauf que cette marco ne fonctionne que dans le cas ou AR8 = L2.

Alors, supprime cette condition, ce qui donnera :

Private Sub Worksheet_Change(ByVal Target As Range)

    If Range("AR8").Value = "J" Then
        Rows("12:15").Hidden = False
        Rows("16:154").Hidden = True
    Else
        Rows("12:154").Hidden = False
    End If

    If Range("AR8").Value = "L1" Then
        Rows("12:15").Hidden = True
        Rows("16:18").Hidden = False
        Rows("19:154").Hidden = True
    Else
        Rows("12:154").Hidden = False
    End If

End Sub

Bye :

Merci pour la réponse mais elle ne convient pas à mon problème.

Si je supprime la condition L2, cela fonctionne pour L1 mais pas pour J.

En fait, dans la (mauvaise?) logique de mon code, seule la dernière condition fonctionne. Qu'il y en ait 2, 3, 4 ou plus

(Là, j'ai mis les 3 premières pour simplifier (J, L1 et L2) mais en fait il y en a une douzaine.)

2 solutions :

ajoute exit sub après chaque test positif et juste avant chaque else

ou mieux, fais des select case au lieu de if https://www.excel-pratique.com/fr/vba/conditions.php

Steelson a écrit :

2 solutions :

ajoute exit sub après chaque test positif

ça fonctionne avec "exit sub". Je n'ai pas testé l'autre solution.

C'est parfait.

MERCI !

L'autre solution est plus propre en écriture

Rechercher des sujets similaires à "masquer ligne fonction"