Excel: création liste déroulante par macro
Résolu
Nono
-
toni31 Messages postés 45 Statut Membre -
toni31 Messages postés 45 Statut Membre -
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
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:
- Liste macro excel
- Liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Excel liste déroulante en cascade - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
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
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
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....
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....
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 ?
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
Nono
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question