Liste déroulante VBA-Excel

Résolu
benito28 Messages postés 8 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 17 mai 2007 - 26 avril 2007 à 23:46
benito28 Messages postés 8 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 17 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>

2 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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~
  
3
benito28 Messages postés 8 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 17 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.

Benito
3
Rejoignez-nous