Bonjour,

Je vous écris concernant une erreur VBA que je rencontre, lors de la création par une macro d'une liste de choix déroulante.

Explication :
Je commence l'enregistrement de ma macro, je vais successivement dans :
Données / validation des données /
Dans l'onglet Options, j'autorise Liste, et dans la textbox Source, je met le code suivant :
CODE: TOUT SÉLECTIONNER=DECALER(Analysis;EQUIV(D2&"";Analysis;0)-1;;NB.SI(Analysis;D2&""))

La liste est bien créée, et est fonctionnelle.

J'arrête l'enregistrement de ma macro, le code source suivant à été généré :

CODE: TOUT SÉLECTIONNER
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Macro5()
'
' Macro5 Macro
'
 
'
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=DECALER(Analysis;EQUIV(D2&"";Analysis;0)-1;;NB.SI(Analysis;D2&""))"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = False
    End With
End Sub
Sans rien changer au code généré par Excel, je sélectionne une autre cellule, et je lance ma macro.
J'obtiens alors une belle erreur :
Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet


Je clique sur "débogage", et la ligne en cause est la suivante :
CODE: TOUT SÉLECTIONNER.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DECALER(Analysis;EQUIV(D2&"";Analysis;0)-1;;NB.SI(Analysis;D2&""))"

Alors que ce code a lui même été généré par Excel !

D'avance grand merci de votre aide