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ÉLECTIONNERSans rien changer au code généré par Excel, je sélectionne une autre cellule, et je lance ma macro.
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
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
Partager