En fait ces listes déroulantes change de valeur en fonction de la valeur d'une autre liste déroulante (fixe en cellule D4). D'ou l'utilisation de ma formule qui fonctionne très bien quand je la tape à la main dans validation de donnée et Liste.
J'ai tester avec ce code changement de virgule et nom des fonctions en anglais toujours l erreur 1004, erreur définie par l'application ou par l'objet
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DECALER(liste_benchmark2,,EQUIV(D4,liste_benchmark;0)-1,NBVAL(DECALER(liste_benchmark2,,EQUIV(D4,liste_benchmark,0)-1)))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=OFFSET(liste_benchmark2,,MATCH(D4,liste_benchmark;0)-1,COUNTA(OFFSET(liste_benchmark2,,MATCH(D4,liste_benchmark,0)-1)))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Merci de votre aide