Bonjour à tous,
J'aimerais créer une liste déroulante dans une inputbox. J'ai trouvé un élément de réponse ici: http://www.developpez.net/forums/sho...light=inputbox mais j'ai du mal à comprendre. Qqn peut-il m'éclaircir S.V.P.?
Bonjour à tous,
J'aimerais créer une liste déroulante dans une inputbox. J'ai trouvé un élément de réponse ici: http://www.developpez.net/forums/sho...light=inputbox mais j'ai du mal à comprendre. Qqn peut-il m'éclaircir S.V.P.?
il n'existe pas de possibilité de mettre une liste déroulante dans une inputbox. tu peux juste contrôler la valeur tapée par l'utilisateur et si elle n'est pas bonne renvoyer la inputbox.
Moi je pencherais plutot par un userform qui contiendrait la listebox et qui se comporterait comme un inputbox
Euhh, ça fait depuis un moment que j'entends parler de ces trucs (les userforms) mais j'y connais strictement rien sur le sujet...kezaco? comment ça marche?
Alex
fais un tour ici
http://silkyroad.developpez.com/VBA/UserForm/
Merci pour le lien Jérôme! J'ai compris comment faire pour charger ma liste déroulante, en revanche je capte pas comment faire pour que, une fois l'élément séléctionné, mon code continue de défiler? j'ai malgré tout l'impression de ne pas comprendre grand chose!
Ci joint un fichier exemple
la liste a charger dans la combo est dans la feuil2
Input perso.xls
Merci pour l'exemple Jérôme! Je vois mieux le truc. Je n'ai pas pu tester la userform hier car j'avais quelques soucis en amont du code...
Maintenant j'ai d'autres questions: je vois que le clic de validation doit être affecté à une feuille et cellule précises, ceci me pose des problèmes car le workbook que j'utilise me sert à ouvrir un à un les fichiers d'un répertoire pour les traiter puis les ramener dans le workbook contenant le code. Mes fichiers sont donc définis en tant que variables, et de plus la feuille que je traite n'a pas tout à fait le même nom d'un fichier à l'autre (je la séléctionne avec like). Enfin le code parcourt toute une colonne pour vérifier le contenu des cellules et les modifier avec la userform si nécessaire. Pour illustrer:
et pour la userform j'ai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 For lgcount = 10 To DerniereLigne If Cells(lgcount, 3).Value <> "Val1" And Cells(lgcount, 3).Value <> "Val2" And _ Cells(lgcount, 3).Value <> "Val3" And Cells(lgcount, 3).Value <> "Val4" And _ Cells(lgcount, 3).Value <> "Val5" And Cells(lgcount, 3).Value <> "Val6" And _ Cells(lgcount, 3).Value <> "Val7" Then UserForm1.Show 1 End If Next
Mes questions sont donc:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Public Sub CommandButton1_Click() If ComboBox1.Text <> "" Then Windows(fich.Name).ActiveSheet.Cells(lgcount, 3).Value = ComboBox1.Text End Sub
- Est-ce que je peux écrire le code du bouton directement depuis mon module, comme ça le prog sait qu'est-ce que c'est fich et lgcount?
- Sinon comment faire pour lier le module avec la userform?
- Est-il possible d'affecter une partie variable dans le message de la userform? du genre:
Bref faire les manipulations qu'on peut faire avec les inputbox et les msgbox...
Code : Sélectionner tout - Visualiser dans une fenêtre à part "dans le fichier " & fich & " la valeur " & cells(lgcount,3) & " n'est pas une valeur reconnue, choisissez une valeur parmi la liste proposée:"
alex
ok j'ai réussi un peu à avancer sur le code et à faire en sorte que la combobox s'affiche, voilà ce que j'ai fait au niveau de mon code maître:
et niveau de l'userform:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ActiveSheet.Cells(lgcount, 5).Activate UserForm1.Showproblème: il me dit que la propriété n'est pas gérée par cet objet. Pourtant en interrogeant la fenêtre d'exécution, il reconnaît chacun des éléments...je capte pas là...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 If ComboBox1.Text <> "" Then ActiveSheet.ActiveCell.Value = ComboBox1.Value End If
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveSheet.ActiveCell.Value = ComboBox1.Value
Et en mettant en fixe une cellule
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveSheet.range("A1").Value = ComboBox1.Value
c'est justement là mon souci: je ne connais pas l'adresse de la cellule en question. C'est pour ça qu'au préalable je l'active ou séléctionne pour que je puisse la récupérer chez la combobox
ok, mais est ce que ca fonctionne quand tu mets l'adresse en direct
oui effectivement en mettant l'adresse directe il saisit
c'est bon en fait: en mettant juste:
ça marche! en revanche comment je fais pour que en cliquant sur "valider" la userform se ferme? parce que là il faut que j'appuie sur la croix pour qu'elle dégage et que mon code continue de défiler!
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveCell.Value = ComboBox1.Value
je suis c..j'avais oublié le unload me!
1000 merci pour tout Jérôme!![]()
Partager