VBA - Validation données

uuubuuu Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
uuubuuu Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je sais faire une validation sur une plage continue (toutes les cellules de B1 à B4):

Range("A1").Validation.Add _
Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=" & Range("B1:B4").Address

Ca me crée une validation (liste déroulante) dans la cellule A1. Tout va bien.

Mais j'aimerais faire quelque chose du genre :

Range("A1").Validation.Add _
Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=" & Union(Range("B1"), Range("B2"), Range("B4")).Address

C'est-à-dire mettre dans la liste déroulante des cellules se trouvant à différents endroits dans un tableau. En gros, comment n'avoir que les cellules qui m'intéressent dans la liste déroulante et non toute la plage.

Existe-t-il un moyen d'arriver à mes fins ?


Merci mille fois d'avance !

4 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

Formula1:=Range("B2,B4,B6").Address

1
uuubuuu Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Michel pour ta réactivité !

Je viens de tester et il me dit "Erreur définie par l'application"

Sheets(1).Range("A1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Range("C1,C3,C4").Address

Pas d'erreur.
La validation est créée mais elle contient "$C$1", "$C$3", etc

J'ai essayé en remplaçant Address par Value mais cela génère une erreur....
J'avoue être un peu débutant en VBA.

Je pense qu'on est vraiment pas loin.

As-tu une idée ?

Merci encore, ton aide m'est très précieuse !
0
uuubuuu Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Oups, ne pas lire la 2ème ligne de mon précédent post.
J'avais testé autre chose...
0
uuubuuu Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Donc, pour clarifier,

Formula1:=Range("C1,C3,C4").Address marche mais la liste contient les adresses "$C$1", etc.

Formula1:=Range("C1,C3,C4").Value génère une erreur

Formula1:="=" & Range("C1,C3,C4").Address génère une erreur

Quelqu'un aurait-il une idée ?

Merci encore, cela me simplifierait tellement la vie...
0