Liste déroulante en cascade - réinitialisation auto en cas de modification

Bonjour,

J'ai crée un tableau contenant des listes déroulantes en cascade. (cf fichier joint)

L'utilisateur choisit entre 1 et 3 critère(s) puis l'essence de bois .

la liste qui apparaît en "critère 2" dépend du choix du critère 1

en "critère 3" dépend des choix des critères 1 et 2

en "essence" dépend des choix des critères 1, 2 et 3

Admettons que le choix final ne convienne pas à l'utilisateur et qu'il décide de modifier l'un de ces critères,

est ce qu'il y a un moyen pour que les cellules se réinitialisent automatiquement ?

En vous remerciant pour votre réponse, j’espère avoir été claire dans ma requête...

tableau terrasse

Salut,

Avec une petite macro tu peux y arriver,

Voir mon fichier joint.

La macro rattachée à la feuille est la suivante :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Application.EnableEvents = False
'Si la cellule qui vient de changer de valeur est "A1"
If ActiveCell.Row = 1 And ActiveCell.Column = 1 Then

'Alors supprimer la valeur en B1
Cells(2, 1).Value = ""
End If
Application.EnableEvents = True

End Sub

Girodo,

30listes.xlsm (15.31 Ko)

Merci beaucoup pour ta réponse ça fonctionne !

Est ce que je peux abuser encore un peu ?

J'ai du mal avec la syntaxe alors comment doit je l'écrire si je souhaite la chose suivante :

Si la cellule qui vient de changer de valeur est "C8" alors on efface "C9" + "C10" + "C12"

Si la cellule qui vient de changer de valeur est "C9" alors on efface "C10" + "C12"

Si la cellule qui vient de changer de valeur est "C10" alors on efface "C12"

A tester mais logiquement :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Application.EnableEvents = False

'Si la cellule qui vient de changer de valeur est "C8"
If ActiveCell.Row = 8 And ActiveCell.Column = 3 Then
'Alors supprimer la valeur en C9, C10, C12
Cells(9, 3).Value = ""
Cells(10, 3).Value = ""
Cells(12, 3).Value = ""
End If

'Si la cellule qui vient de changer de valeur est "C9"
If ActiveCell.Row = 9 And ActiveCell.Column = 3 Then
'Alors supprimer la valeur en C10, C12
Cells(10, 3).Value = ""
Cells(12, 3).Value = ""
End If

'Si la cellule qui vient de changer de valeur est "C10"
If ActiveCell.Row = 10 And ActiveCell.Column = 3 Then
'Alors supprimer la valeur en C12
Cells(12, 3).Value = ""

End If

C'est parfait, merci beaucoup.

Bonne fin de journée.

Rechercher des sujets similaires à "liste deroulante cascade reinitialisation auto cas modification"