Bonjour à tous,
j'ai pas mal cherché sur le problème mais j'ai essayé diverses solutions trouvées sur le net, rien n'y fait... 
J'ai un code qui, sous certaines conditions qui ne nous intéressent pas ici, est censé appliquer à des cellules une liste déroulante dynamique.
En gros : j'ai un tableau structuré contenant des dates et j'ai nommé 'dates' la plage de cellules contenant ces dates (car on ne peut pas directement citer le tableau dans la liste de validation). La formule permet d'appliquer à des cellules une liste déroulante contenant une partie seulement du tableau, ceci en fonction de la valeur de la cellule située en colonne M sur la même ligne ; cette dernière contient une date et le but est que la liste déroulante parte de cette date (chaque cellule concernée par la formule aura donc une liste déroulante qui contient les dates mais à chaque fois, on ne démarre pas de la même date)...
Bon, je reconnais que c'est peu clair. 
La ligne en français, avec les double guillemets est celle-ci, mais ça ne fonctionne pas (précision: je sélectionne bien la cellule au préalable): j'ai une erreur 1004.
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=INDIRECT(""source!L"" & EQUIV(INDIRECT(""M"" & LIGNE());dates;1)+LIGNE(dates)-1&""C""&COLONNE(dates)&"":L""&EQUIV(MAX(dates);dates;1)+LIGNE(dates)-1&""C""&COLONNE(dates);FAUX)"
En anglais, ce n'est pas mieux:
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=INDIRECT(""source!R"" & MATCH(INDIRECT(""M"" & ROW()),dates,1)+ROW(dates)-1 & ""C"" & COLUMN(dates) & "":R"" & MATCH(MAX(dates),dates,1)+ROW(dates)-1 & ""C"" & COLUMN(dates),FALSE)"
Pourtant, quand j'entre directement la formule (en français avec des simples guillemets) dans la fenêtre Excel (sans passer par VBA), ça fonctionne.
Quelqu'un saurait-il d'où peut venir le problème, svp?
Merci par avance.
Yohann
Partager