"VBA: avoir un macro qui m'aiderais à afficher/masquer"
danielc0 Messages postés 1988 Date d'inscription Statut Membre Dernière intervention -
salut et désolé du dérangement
je suis trèèèèèèèèèèès novice en langage VBA . j'aimerais un macro qui m'aiderais à afficher/masquer une ligne selon la valeur d'une liste déroulante.
je m'explique
j'ai une liste déroulante en "L12" et des données par Recherchev dans les cellules "C29:C32"
j'aimerai que pour une valeur "x" de L12 si une cellule entre "C29:C32" est vide ("") alors que la ligne en question soit masquer
mais quand pour une valeur de "y" que la macro tienne compte des nouvelles données et affiche le(s) ligne(s) masqué au cas ou celles-ci ne sont pas vide et ainsi de suite
j'utilisais le code que voici mais hélas
Sub Masque_lig()
Application.ScreenUpdating = False
Dim cellule As Range
For Each cellule In Range("C29:C32")
If cellule.Value = "" Then
cellule.EntireRow.Hidden = True
Else
cellule.EntireRow.Hidden = False
End If
Next cellule
End Sub
prière m'aider.
- "VBA: avoir un macro qui m'aiderais à afficher/masquer"
- Excel compter cellule couleur sans vba - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
1 réponse
Bonjour,
Mets cette macro dans le module de la feuille (pas dans un module standard) :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$L$12" Then
Application.EnableEvents = False
If Target = "x" Then
For Each cellule In Range("C29:C32")
If cellule.Value = "" Then
cellule.EntireRow.Hidden = True
End If
Next cellule
ElseIf Target = "y" Then
For Each cellule In Range("C29:C32")
If cellule.Value = "" Then
cellule.EntireRow.Hidden = False
End If
Next cellule
End If
Application.EnableEvents = True
End If
End Sub
Daniel