Reset listes déroulantes en cascade en visual basic
Bonjour à toutes et à tous,
J'ai deux petites questions concernant le Visual Basic.
Je ne parviens pas à trouver comment faire un truc qui est certainement assez élémentaire, à savoir rajouter des commandes dans un Worksheet visual basic :
En l’occurrence j'ai ceci qui fonctionne bien et qui me permet de reset ma liste déroulante en cascade en fonction du choix de la première située en B11
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$11" Then
Range("B14").Value = "Sélectionner parmi la liste"
End If
End Sub
Or, j'ai une 3ème liste déroulante (en B17) qui dépend de la seconde.
1) Que devrais-je rajouter pour que si B14 est modifiée alors ça reset B17 ? Voire, pour que si B11 est modifiée, alors B14 et B17 soient reset ?
2) Par ailleurs, j'ai exactement la même chose à faire dans ma colonne D (aux mêmes emplacements).
Est ce que je copier les commandes en rajoutant des if dans ce genre ? :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$11" Then
Range("B14").Value = "Sélectionner parmi la liste"
End If
If Target.Address = "$D$11" Then
Range("D14").Value = "Sélectionner parmi la liste"
End If
End Sub
Un grand merci pour vos réponses ! et désolé pour ma newbitude!
Z.
Bonjour ZuBro
Il faut déjà commencer par essayer de comprendre ce qu'on utilise comme code, non
Private Sub Worksheet_Change(ByVal Target As Range)Si l'évènement change se produit dans la feuille ou cette Sub est mise
If Target.Address = "$B$11" ThenSi la cellule modifiée à l'adresse "$B$11", on effectue le code qui se trouve en dessous
J'espère que ce sera plus clair pour vous
A+
Bonjour et merci pour votre réponse.
J'ai bien identifié ces deux axes : si l’événement "change" se produit, et si la cellule est modifiée. Le code que j'ai copié fonctionne pour le reset de ma liste B14 en fonction de B11.
Ce que je ne sais pas faire, c'est ajouter d'autres "If Target.Adress.... Then dans la même feuille de code.
Dans mon esprit cela donnerait cela, mais j'imagine que ma grammaire est mauvaise... :(
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$11" Then
Range("B14").Value = "Sélectionner parmi la liste"
End If
If Target.Address = "$B$14" Then
Range("B17").Value = "Sélectionner parmi la liste"
End If
If Target.Address = "$D$11" Then
Range("D14").Value = "Sélectionner parmi la liste"
End If
If Target.Address = "$D$14" Then
Range("D17").Value = "Sélectionner parmi la liste"
End If
End Sub
Z.
Mon dieu, ça à l'air de fonctionner !