Code VBA qui masque des lignes

Fermé
Antoine443301 - 21 mars 2017 à 15:06
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 - 21 mars 2017 à 16:24
Bonjour,

J'ai écrit un code VBA qui masque certaines lignes en fonction de la valeur d'une cellule (en occurrence la cellule E33). Si mon code fait parfaitement le travail que je lui demande de faire, il a cependant le gros problème de me renvoyer constamment au niveau des lignes cachées à chaque fois que je modifie quelque chose sur l'intégralité de la feuille excel.

Voici le code en question :

Private Sub Worksheet_Change(ByVal Target As Range)
If [E33] = 1 Then
Application.Rows("35:42").Select
Application.Selection.EntireRow.Hidden = True
End If

If [E33] = 2 Then
Application.Rows("36:42").Select
Application.Selection.EntireRow.Hidden = True
Application.Rows("34:35").Select
Application.Selection.EntireRow.Hidden = False
End If

If [E33] = 3 Then
Application.Rows("37:42").Select
Application.Selection.EntireRow.Hidden = True
Application.Rows("34:36").Select
Application.Selection.EntireRow.Hidden = False
End If
End Sub

Pouvez vous m'aider ?? :)

merci d'avance

Antoine
A voir également:

1 réponse

f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
21 mars 2017 à 16:24
Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
    If [E33] = "" Then   'affiche toutes les lignes
        Cells.EntireRow.Hidden = False
    ElseIf [E33] = 1 Then
        Rows("35:42").EntireRow.Hidden = True
    ElseIf [E33] = 2 Then
        Rows("36:42").EntireRow.Hidden = True
        Rows("34:35").EntireRow.Hidden = False
    ElseIf [E33] = 3 Then
        Rows("37:42").EntireRow.Hidden = True
        Rows("34:36").EntireRow.Hidden = False
    End If
End Sub
0