Afin de réinitialiser une liste déroulante enfant (liste déroulante 2 en fonction du choix effectué dans la liste déroulante 1), j'ai le code suivant dans "ThisWorkbook".
Il est censé effacer le contenu de la liste déroulante enfant si une cellule d'une plage spécifique (où se trouve la liste déroulante 1) change. Cela fonctionne bien sur la feuille où ce nom de plage existe (le nom de la plage est "RSTcabFINISHING").
ENJEU
sur n'importe quelle autre feuille (= feuille où ce nom de plage n'existe pas), ce code efface le contenu de n'importe quelles 3 cellules jusqu'à une cellule dont je change le contenu.
La solution serait de mettre le code uniquement sur la feuille qui en a besoin, je suppose. Mais (dites-moi si je me trompe) il semble plus logique de mettre le code dans "ThisWorkbook" puisque les feuilles ayant la plage décrite ci-dessus sont sujettes à être multipliées (=copie)...
Je ne suis pas sûr que tout cela ait un sens... Je suppose que la question est "que dois-je faire pour éviter que ce contenu de compensation ne se produise ailleurs que là où je le souhaite ?".
Merci.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Initialize cabinet finishing board
On Error Resume Next
If Not Intersect(Target, Range("RSTcabFINISHING")) Is Nothing Then
Application.EnableEvents = False
Target.Offset(0, 1).Resize(, 3).ClearContents
End If
Exit Sub
End Sub