Excel: création liste déroulante par macro [Résolu/Fermé]

Signaler
-
Messages postés
39
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
15 juin 2015
-
Bonjour,

Je me demande si certains d'entre vous ont déjà rencontré le petit problème auquel je fais actuellement face:
Je crée une macro qui génère automatiquement des questionnqires (avec mise en page auto selon la liste et le type de questions), et pour chaque question jájoute également une case avec liste déroulante, pour faire une évaluation entre 1 et 5.

J'utilise donc la commande suivante:
With Selection.Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="1;2;3;4;5"
End With

Le problème, c'est que cette commande ne me laisse qu'un seul choix dans la liste, la ligne "1;2;3;4;5".

Je vais dans l'option Validation des données, ca a l'air pourtant bon, je valide, je retourne sur ma cellule et la bonne liste apparaît...
Evidemment, je ne peux pas faire ca sur toutes les cellules, puisqu'il y a beaucoup de questions et que de toutes facons, je cherche à automatiser le tout...

Quelqu'un aurait-il déjà rencontré ce problème ? Une idée quelconque ?

Un grand merci d'avance!!

Nono






5 réponses

Salut Mikanadien,

Merci pour ta réponse! J'avais pensé à cette option, et elle marche très bien; le truc c'est que la page de questionnaire que je génère doit être copiée sur une autre feuille et, pour des questions de design, je ne peux pas vraiment avoir la liste dans des cellules de la feuille...
Je voudrais vraiment créer cette liste déroulante par macro; ce qui est fou c'est quíl me suffit d'aller dans les options, ne rien changer, valider, pour que la bonne liste apparaisse.
Merci encore :)

Nono
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60993 internautes nous ont dit merci ce mois-ci

Messages postés
108
Date d'inscription
mardi 23 août 2011
Statut
Membre
Dernière intervention
10 août 2012
9
Bonjour

Essaie plutot :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$A$1:$A$10"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True

En ayant mis dans la colonne A pour cet exemple les valeurs que tu veux dans ta liste...
Histoire qu il comprenne bien que chaque valeur de cette range doit etre un element de la liste....
Messages postés
108
Date d'inscription
mardi 23 août 2011
Statut
Membre
Dernière intervention
10 août 2012
9
Re,

Je comprends ton probleme...
Tu veux creer une liste, non pas en fonction d une liste de cellules, mais en fonction de valeurs prefinies....

Je ne pense pas que ce soit possible car le propre de la fonction Selection.Validation, c est d autoriser uniquement le contenu d une selection de cellules...

Je te conseille donc d utiliser la methode qui marche et de mettre la liste de cellule en non visible par l utilisateur, par exemple en colonne AZ
Genre : With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$AZ$1000:$AZ$1010"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True

Et tu met en couleur de police sur ces cellules du blanc... Et ca devient invisible... Et visible dans ta liste... Pas belle la vie ?
Oui je vais faire ca. Je ne serai pas le seul à l'utiliser, je voulais donc être sûr qu'il n'y ait pas d'erreur de manip possible... Enfin bon, problème résolu, merci beaucoup!!

Nono
Messages postés
26
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
20 août 2014
4
Bonjour,

Cela est possible ! Dans VBA, il faut remplacer les ";" par des "," comme ceci :
With Selection.Validation 
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
xlBetween, Formula1:="1,2,3,4,5" 
End With 


Bien cordialement
Messages postés
39
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
15 juin 2015
1
merci, ça marche Malo
Messages postés
39
Date d'inscription
jeudi 22 novembre 2012
Statut
Membre
Dernière intervention
15 juin 2015
1
^^