Macro masquer lignes selon valeur liste de validation

hypo78

XLDnaute Impliqué
Bonjour,
je cherche à faire une macro me permettant de masquer une ou plusieurs séries de lignes en fonction de la valeur en A1 (liste de validation).
J'ai bien trouvé quelques exemples sur le forum mais les résultats suite à mon adaptation sont assez aléatoires....
Merci d'avance de votre aide.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("a1")) Is Nothing Then
    If Range("a1") = "1/2 Journée FO" Then
        Range("4:9,18:23").EntireRow.Hidden = True
     End If
     
      If Range("a1") = "Journée FO / TDL" Then
        Rows("18:23").EntireRow.Hidden = True

    End If
     If Range("a1") = "1/2 Journée TDL" Then
        Rows("11:23").EntireRow.Hidden = True
    
    End If
    If Range("a1") = "1/2 Journée FF" Then
        Rows("4:16").EntireRow.Hidden = True
    Else
        Rows("4:23").EntireRow.Hidden = False

    End If
    End If

End Sub
 

Pièces jointes

  • ex1.xls
    25.5 KB · Affichages: 59
  • ex1.xls
    25.5 KB · Affichages: 61
  • ex1.xls
    25.5 KB · Affichages: 60

kjin

XLDnaute Barbatruc
Re : Macro masquer lignes selon valeur liste de validation

Bonsoir,
Il est préférable d'utiliser Select Case à défaut de If/ElseIf
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
    Rows("4:23").Hidden = False
    Select Case Target
    Case "1/2 Journée FO"
        Rows("4:9").Hidden = True
        Rows("18:23").Hidden = True
    Case "Journée FO / TDL"
        Rows("18:23").Hidden = True
    Case "1/2 Journée TDL"
        Rows("11:23").Hidden = True
    Case "1/2 Journée FF"
        Rows("4:16").Hidden = True
    End Select
End If
End Sub
A+
kjin
 

Statistiques des forums

Discussions
314 017
Messages
2 104 582
Membres
109 083
dernier inscrit
Stef06