Combobox sur VBA

Résolu
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006 - 16 déc. 2005 à 18:40
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006 - 4 janv. 2006 à 09:08
Bonjour,

Je commence tout juste à developper en VBA et je galère depuis quatre jours (soirs) sur un problème:

J'ai une liste de personnes sur excel avec nom, prénom, date de naissance... avec une ligne par personne.
Cette liste est modifiable avec la modification, la création ou la suppression d'un profil.
Je souhaite créer une combobox reprennant cette liste pour que, lorsqu'on sélectionne un nom+prénom, la cellule active d'excel se mette sur le nom que l'on a sélectionné dans la combobox.
De plus, la combobox doit avoir le contenu de la colonne nom + celui de la colonne prénom.

J'espère que j'ai été clair pour détaillé mon problème.

Merci d'avance pour votre aide précieuse !

5 réponses

valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
17 déc. 2005 à 00:01
Lut,
Je part sur le principe que tu as nommé "MyList" ta plage de cellules qui contiennent tout tes noms et prénoms. je te laisse le soin de coder la gestion de ta liste(suppression ajout etc..)
à l'ouverture de ton UserForm tu charges ta liste comme ceci:
Private Sub UserForm_Initialize()
ComboBox1.ColumnCount = 2
ComboBox1.RowSource = "MyList"
End Sub
ensuite sur le changement tu sélectionnes ta cellule
Private Sub ComboBox1_Change()
Range("Mylist").Cells(ComboBox1.ListIndex + 1, 1).Select
End Sub
c'est du basique tu devra étoffer un peu.
Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
3
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
20 déc. 2005 à 21:39
Oui pas évident au premier abord.
Le but c'est de selectioner la cellule en rapport avec ton combo.
on a atribué à RowSource du combo la plage Mylist. Celle-ci comporte des lignes et des colonnes (comme excel).Cells te permet de sélectionner une cellule dans ta plage.
ex: si ta plage est "C1:E4" et que tu fait Range("Mylist").Range("A1").Select c'est la cellule C1 qui sera sélectionné (Elle correspond bien à la première cellule de ta plage. De même si tu fait Cells(1,1).Select c'est encore la première cellule qui le sera.L'index 0 de ton combo correspond donc à la première ligne de Mylist on rajoute 1 pour être en phase avec Mylist. ListIndex te renvoie l'index de la sélection (premier 0 ;deuxième 1 etc....)Voilà c'est tout le .Select demande à VBA de sélectionner la cellule.
Je te conseille de lire l'aide sur les objets Range et Cells
Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
3
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006
19 déc. 2005 à 08:30
Merci, je vais essayer dès ce soir !
0
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006
20 déc. 2005 à 08:19
Merci beaucoup, j'ai essayé ta méthode et ça fonctionne nickel !
par contre je n'ai pas compris à quoi servait exactement et comment marchait ça :
Range("Mylist").Cells(ComboBox1.ListIndex + 1, 1).Select
peux-tu m'éclairer à ce sujet ?

Encore merci !
0

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

Posez votre question
cs_lafrite44 Messages postés 10 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 30 janvier 2006
4 janv. 2006 à 09:08
Tout d'abord meilleurs voeux pour cette nouvelle année !

Et merci pour ta réponse !!!
Je comprend mieux la méthode maintenant.
0
Rejoignez-nous