ComboBox et feuilles Excel [VBA] - VB/VBA/VBS - Programmation
Marsh Posté le 16-11-2004 à 21:33:07
il faut que tu change la propriete "RowSource" de ta combobox en fonction des boutons cliqués
Marsh Posté le 16-11-2004 à 21:41:10
Je sais qu'on peut faire comme ça, mais et d'un on a essayé et ca ne marche pas, et de 2, la prof veut qu'on passe par le code et pas seulement remplir la case rowsource..
Marsh Posté le 16-11-2004 à 21:48:35
bien sur que ca marche !
Private Sub CommandButton1_Click()
UserForm1.ComboBox1.RowSource = "feuil1!A1:A40"
End Sub
Private Sub CommandButton2_Click()
UserForm1.ComboBox1.RowSource = "feuil1!B1:B40"
End Sub
quand tu clique sur le bouton 1 c'est la liste A1:A40 qui s'affiche dans le combobox et quand tu clique sur le 2 c'est la liste B1:B40
Marsh Posté le 16-11-2004 à 23:22:46
Elle doit etre couché la mais demain elle vient a la maison et on testera. Merci
si ca marche pas on viendra vous voir
Le truc par contre c'est qu'a priori tu utilises la meme feuille, alors qu'ici, elle a 3 feuilles, une pour chaque classe (car apres elle stocke d'autres trucs), ca change rien ? VBA va de lui meme aller voir dans la feuille2 si on lui dit ?
Marsh Posté le 17-11-2004 à 12:24:20
oui,tu n'auras qu'a mettre "feuil2!A1:A40" ou "feuil3!A1:A72" ou meme "TOTO!A1:A25" si ta feuille ou se trouve les noms des eleves s'appelle TOTO
Marsh Posté le 17-11-2004 à 14:20:21
ok niquel, ben on va tester ca merci
Et est ce qu'on peut faire un truc du style :
Une boucle qui ecrira dans la combobox ligne a ligne jusqu'a ce que la case excel soit vide parce qu'en faisant comme tu fais si je rajoute un nom a ma feuille il apparaitra pas dans ma combobox...
Faudrai que je trouve un bon site sur excel et vba, parce qu'apres vais devoir editer ma feuille excel pour rajouter des notes et tout
Marsh Posté le 17-11-2004 à 16:32:06
si ta combobox est dans une form (userform1), si elle est dans une feuille remplace "UserForm1" par "ThisWorkbook.Sheets("feuil1" )"
' ***** on vide la liste de la combobox1
UserForm1.ComboBox1.Clear
' ***** début de la boucle
Do
' ******* on incremente la ligne L
L = L + 1
' ******* on lit la premiere ligne L
LECTURE = ThisWorkbook.Sheets("feuil1" ).Cells(L, 1)
' ******* si la cellule ligne L , colonne 1 est vide on sort
If LECTURE = "" Then Exit Do
' ******* on ajoute le contenu de la cellule dans la liste
UserForm1.ComboBox1.AddItem LECTURE
Loop
Marsh Posté le 17-11-2004 à 17:05:26
Merci bcp !!!!
On va tester ca ce soir, si on a d'autres problemes, on passera, merci
Marsh Posté le 17-11-2004 à 17:50:20
Une petite question en passant,
UserForm1.ComboBox1.Clear
renvoi toujours une erreur "Erreur non répértoriée", ca veut dire quoi ? A priori on ne peut pas vider la liste...
Edit :
Voici donc le code qu'on obtient :
Code :
|
On a une "erreur non repertoriée" sur lst3.Clear !! Pk le clear ne marche il pas ?
Merci
Marsh Posté le 17-11-2004 à 20:12:23
Effectivement, il vaut mieux mettre
If Not IsEmpty(lst3) Then lst3.RowSource=""
Aparement, si on defini une RowSource on ne peut plus faire un Clear mais un RowSource=""
Marsh Posté le 17-11-2004 à 20:39:16
C'est ca !!
Merci bcp tu nous sauves la
Merci encore, t'as vraiment assuré depuis le debut
Marsh Posté le 16-11-2004 à 21:11:09
Je vous transmet une question de ma copine qui galere avec un projet qu'elle doit faire en VBA,elle fait un IUT GEA alors l'info c'est pas son truc donc j'espere que vous pourrez l'aider
Bonjour,
J'ai un programme en vba à faire, et il faut que je mette entre autres, un combobox.
Voilà le problème:
J'ai 3 classes de Terminales S. Chaque classe, TS1, TS2 et TS3 est sur une feuille excel, chacune comportant le nom des élèves.
Il faut que sous vba, l'utilisateur choisisse sa classe. J'ai donc créé 3 boutons pour choisir cette classe, ts1, ts2 et ts3. Il doit ensuite cliquer sur Ok pour qu'une liste déroulante des élèves apparaisse.
Il faut ensuite que selon la classe choisie, la liste des élèves de la classe s'affiche ds le combobox.
J'arrive à afficher une liste d'élèves, mais celle-ci ne change pas en fonction de la classe choisie, c'est toujours la meme. En fait, selon si sous excel on est positionné sur la feuille ts1, ts2 ou ts3, et bien c'est cette liste là qui se sélectionne et impossible de la faire changer selon la classe.
Personnellement, je serais une personne extérieure qui lirait ça, je n'y comprendrais rien !
Si qq1 peut m'aider, ou veut des explications supplémentaires..
Merci bcp !