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]