Liste déroulante avec formule

Bonjour je suis novice avec la VBA d'excel et j'ai un soucis au niveau du codage d'une liste déroulante.

Mon problème :

Le tableau "DONNEES" comprend la colonne A nommée [CAD] qui est une donnée d'entrée.

J'ai donc codé cela pour que la liste déroulante n'affiche que les cases remplies de la colonne [CAD] du tableau DONNEES :

[quote]=DECALER(INDIRECT("DONNEES[[CAD ]]");0;0;$AA$3)[/quote]

Avec AA3 qui est "nbval([CAD])" le nombre de case remplie dans la colonne A.

Si je crée la liste déroulante manuellement cela fonctionne !

Cependant lorsque je rentre cette formule dans mon code VBA, j'ai une erreur du type : "Erreur de compilation: Erreur de syntaxe"

Lorsque je code la liste déroulante avec comme "formule" une plage de données type A6:A9 cela fonctionne. J'en ai donc déduis que c'est la formule à travers la VBA qui coince. Quelqu'un aurait une explication ???

Voici le code :

[quote] Range("AF6:AF14").Select

With Selection.Validation

.Delete

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=DECALER(INDIRECT("DONNEES[[CAD ]]");0;0;$AA$3)"

.IgnoreBlank = True

.InCellDropdown = True

.InputTitle = ""

.ErrorTitle = ""

.InputMessage = ""

.ErrorMessage = ""

.ShowInput = True

.ShowError = True

End With

[/quote]

Rebonjour,

J'ai trouvé ma solution : en réalité j'avais un doublon entre une variable qui avait le nom CAD et la colonne du tableau.

Cordialement

QuentinATSA

Rechercher des sujets similaires à "liste deroulante formule"