LePapillonNimois
Messages postés1Date d'inscriptionmercredi 25 mars 2015StatutMembreDernière intervention25 mars 2015
-
Modifié par ucfoutu le 25/03/2015 à 12:25
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
25 mars 2015 à 17:58
Bonjour,
Je n'arrive pas à comprendre comment créer une boucle de ComboBox.
J'ai créé un UserForm qui permet de sélectionner des noms les uns après les autres pour les insérer en liste dans un feuille Excel. J'arrive à cela :
Private Sub ComboBox3To11_Change() Dim i As Byte Range("C6").Activate For i = 3 To 11 Label1.Caption = Controls("ComboBox" & i).Value ActiveCell.Offset(1, 0).Select ActiveCell.Value = UserForm1.Controls("ComboBox" & i).Value Next End Sub
Traduction de la logique que j'aimerais écrire : Pour les ComboBox 3 à 11, je veux que le UserForm enregistre le nom que va choisir l'utilisateur, qu'il passe à la cellule du dessous et saisisse le choix de l'utilisateur.
Exemple : Si l'utilisateur choisis "Paris" dans le ComboBox 3, "Londres" dans le ComboBox 4, ... j'aurais écris Paris en cellule C7, Londres en cellule C8, etc.
Mais mon code est visiblement faux car cela ne fonctionne pas.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 mars 2015 à 12:34
Bonjour,
- J'ai commencé par mettre ton code entre balises code (il est très important, pour la lisibilité, de respecter cette règle, que je te prie d'observer à l'avenir).
- évite de travailler avec des Activate, Select, etc ... Travaille directement avec les objets Excel.
- j'appelle ton attention (à toi également) sur le fait que la propriété Value d'une Combobox ne correspond pas forcément à l'article qui y est cliqué ! cette propriété a pour valeur ce qui apparait dans la zone de saisie de la combo (ce qui est donc risqué).
L'article sélectionné dans une combobox comboboxx est donc (et là à coup sûr) :
comboboxx.list(comboboxx.listindex) Reviens après avoir tenu compte de ces indications et modifié ton code en conséquence.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 25 mars 2015 à 14:40
Bonjour à vous,
Le nom de la macro m'interpelle...
Private Sub ComboBox3To11_Change()
Comme ce n'est pas vraiment un événement, de ce que je pense, comment est-elle appelée ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 mars 2015 à 17:58
Bonjour, Cs_MPI,
Si si, c'est bien une procédure évènementielle.
Elle est toutefois ici utilisée abusivement et dangereusement. Elle intervient en effet non seulement lorsque l'utilisateur à sélectionné un article, mais également lorsqu'il frappe (saisit) dans la zone d'édition de la combo.
Elle est ici de surcroît utilisée à tort.