VBA et plage nommée

Vinvol

XLDnaute Junior
Bonjour,

Dans le fichier attaché, j'ai défini une plage nommée.
J'essaye de récupérer cette plage dans une variable, qui me permettra de créer une liste de validation (contenant donc les éléments présents dans ma plage de données).

Si je poste ce message, c'est qu'évidemment, ça ne fonctionne pas. Mais je ne comprends pas pourquoi...

La variable est définie ainsi :

Code:
Set Zone1 = Range("maListe")

En break mode, si je survole "Zone1" avec ma souris, la valeur débute en "empty" (normal) puis, quand la ligne de code est lue, ne renvoit rien.
Dans un autre exemple ou la variable n'appelait pas une plage nommée mais définissait cette plage, le survol de la souris renvoyait la première valeur de la liste. Donc, même si ce n'est pas dessus que la macro plante, je pense que c'est là qu'est le soucis.

Pour précision, la macro plante sur cette ligne; visiblement elle ne reconnait pas Zone1 comme un range.
Code:
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=Zone1"


Quelqu'un peut-il m'expliquer ce qui cloche ?

Merci,
Vincent
 

Pièces jointes

  • fichierTest.xlsm
    21.6 KB · Affichages: 23
  • fichierTest.xlsm
    21.6 KB · Affichages: 27
  • fichierTest.xlsm
    21.6 KB · Affichages: 17

Caillou

XLDnaute Impliqué
Re : VBA et plage nommée

Bonjour,

L'argument Formula1 n'attend pas un objet Range mais l'adresse de la plage de cellules (string), donc, il faut mettre :
Code:
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                 xlBetween, Formula1:=Zone1.Name
ou
Code:
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                 xlBetween, Formula1:="=maListe"
Caillou
 

Discussions similaires

Réponses
7
Affichages
405

Statistiques des forums

Discussions
312 490
Messages
2 088 882
Membres
103 981
dernier inscrit
vinsalcatraz