Bonjour,

Je génère dans mon tableur, et par VBA, une validation des données par une liste, dont le nom dépend du contenu d'une autre cellule.

Par exemple, la cellule A2 contient le texte "Tous les jours", et je souhaite avoir en B2 un choix parmi la liste Tous_les_jours, que j'ai créée dans une autre feuille.

Dans Excel, manuellement, j'utilise la formule
Code : Sélectionner tout - Visualiser dans une fenêtre à part
=INDIRECT(SUBSTITUE(A2, " ", "_"))
que j'insère dans le champ Formule du menu Validation des données, en sélectionnant Liste.

La source est reconnue comme erronée, je valide malgré tout, et le résultat me convient.

Cependant, je dois maintenant modifier dans une macro le nom de cette liste.

J'utilise :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Worksheets("Feuill1").Range("B2").Validation.Add Type:=xlValidateList, Formula1:="=INDIRECT(SUBSTITUE(A2;" & Chr(34) & _
                            " " & Chr(34) & ";" & Chr(34) & "_" & Chr(34) & "))"
J'obtiens une merveilleuse erreur 1004, que je mets sur le compte de la source erronée.

Comment puis-je contourner ce problème ?

J'espère avoir été clair dans mes explications.

Cordialement,

Mikro.