Bonjour,
Dans ce cas, il te faut utiliser les valeurs en dur dans le code. Une liste de validation en cellule A1 et pour le test, entrer les valeurs "Choix 1", "Choix 2", et "Choix 3", le résultat en cellule B1 :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A1" Then Exit Sub
With Range("B1").Validation
.Delete
Select Case Target.Value
Case "Choix 1"
.Add xlValidateList, , , "Valeur 1 pour choix 1,Valeur 2 pour choix 1,Valeur 3 pour choix 1"
Case "Choix 2"
.Add xlValidateList, , , "Valeur 1 pour choix 2,Valeur 2 pour choix 2,Valeur 3 pour choix 2"
Case "Choix 3"
.Add xlValidateList, , , "Valeur 1 pour choix 3,Valeur 2 pour choix 3,Valeur 3 pour choix 3"
End Select
End With
End Sub