benito28
Messages postés8Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention17 mai 2007
-
26 avril 2007 à 23:46
benito28
Messages postés8Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention17 mai 2007
-
27 avril 2007 à 01:27
Bonjour à toutes et à tous,
J'aimerais savoir le code en VBA-Excel pour charger une liste déroulante à partir d'une base de données d'une sheet autre que la première (qui se charge par défaut) ... Je m'explique : Quand j'écris :
Private Sub UserForm_Initialize()
ComboBox1.Text = "Promos"
der = Range("A1").End(xlDown).Row
ComboBox1.RowSource = "A1:A" & der
ComboBox2.Text = "Eleves"
der = Range("A1").End(xlDown).Row
ComboBox2.RowSource = "A1:A" & der
End Sub
La première liste déroulante dois se charger avec les données de la sheet1, et la deuxieme doit se charger à partir des données se trouvant dans la sheet dont le nom a été selectionné dans la première liste déroulante :
en fait, la première sheet (et doncla première liste déroulante) représente les promos d'une école, et les autres fauilles représentent les élèves de chaque promos.
Par exemple quand on selectionne la promo "1ere année" dans la liste déroulante 1, j'aimerais qu'automatiquement les noms des élèves de 1ere année (qui se trouvent dans la sheet nommée "1ere année") se chargent dans la liste déroulante 2.... etc
Voilà, merci d'avance de votre aide potentielle....
Benito, un néophyte en programmation, mais à qui ça plaît bien..
PS: selon Wikipédia:<li>un néophyte peut également être un débutant dans le domaine auquel il se consacre. En informatique, un néophyte est appelé un newbie ou noob ;</li><li>le sens de néophyte peut être plus fort et le mot est
employé pour désigner des personnes n'ayant aucune connaissance
particulière dans un domaine donné, comme dans l'expression « un vrai
néophyte en électronique » ;</li>
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 avril 2007 à 23:53
Salut,
essaie comme ceci :
Private Sub UserForm_Initialize()
ComboBox1.Text = "Promos"
der = Range("A1").End(xlDown).Row
ComboBox1.RowSource = "A1:A" & der
End Sub
Private Sub ComboBox1_Change()
ComboBox2.Text = "Eleves"
der = Range("A1").End(xlDown).Row
ComboBox2.RowSource = ComboBox1.Text " "!A1:A" & der
End Sub
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
benito28
Messages postés8Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention17 mai 2007 27 avril 2007 à 01:27
Merci, j'ai essayé ton truc, mais ça marchait malheureusement pas..en tout cas, mercide t'être donné la peine de me lire...
Et finalement en bidouillant sur des sites webs, j'ai tout simplement trouvé ceci, et ça marche :
Private Sub UserForm_Initialize()
ComboBox1.Text = "Promos"
der = Range("A1").End(xlDown).Row
ComboBox1.RowSource = "A1:A" & der
End Sub
Private Sub ComboBox1_Click()
Sheets(ComboBox1.Text).Select
ComboBox2.Text = "Eleves"
der = Range("A1").End(xlDown).Row
ComboBox2.RowSource = "A1:A" & der
End Sub
En fait, il suffisait d'activer la sheet correspondant à la valeur selectionnée dans la liste déroulante 1, et de lui associer une action lors du clic sur la liste 1.Je mets ça, si ça peut servir à quelqu'un... tant mieux.