Excel: création liste déroulante par macro

Résolu/Fermé
Nono - 24 août 2011 à 09:27
toni31 Messages postés 39 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 15 juin 2015 - 19 juin 2014 à 23:34
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






A voir également:

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
mikanadien2 Messages postés 108 Date d'inscription mardi 23 août 2011 Statut Membre Dernière intervention 10 août 2012 10
24 août 2011 à 09:33
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....
1
mikanadien2 Messages postés 108 Date d'inscription mardi 23 août 2011 Statut Membre Dernière intervention 10 août 2012 10
24 août 2011 à 09:52
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 ?
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maloplekxus Messages postés 26 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 20 août 2014 3
31 janv. 2013 à 10:30
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
0
toni31 Messages postés 39 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 15 juin 2015 1
19 juin 2014 à 23:34
merci, ça marche Malo
0
toni31 Messages postés 39 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 15 juin 2015 1
19 juin 2014 à 23:34
^^
0