Bonjour Dolphin, Barbara, Marc, cher Mytå, Alain, le Forum
Oui Alain, parfois il faut débuter par le plus simple, mais sur ce coup, Dolphin nous précise aussi :
J'aimerais savoir comment défini une liste dans un userform ? .../... J'aimerais que l'utilisateur effectue un choix via une liste déroulante...
Par conséquent, les Listes de Validations, sont forcément exclues.
Non je pense avoir une idée,
RowSource, un peu comme ce Forum pour placer un fichier,
ne supporte pas les noms d'Onglets avec un Espace (et probablement certains caractères 'exotiques'... C'est tout simple.
Sinon on peut aussi alimenter des ComboBox (ou des ListBox) de manière assez simple pour les débutants comme ceci :
Méthode Plage vers Array vers ComboBox.List
Private Sub UserForm_Initialize()
Dim TabPlage As Variant
With Worksheets('La Feuille Avec des Espaces')
TabPlage = .Range('A2:A20')
End With
ComboBox1.List = TabPlage
End Sub
Que l'on peut améliorer pour avoir une Plage Dynamique :
Private Sub UserForm_Initialize()
Dim TabPlage As Variant
With Worksheets('La Feuille Avec des Espaces')
TabPlage = Range(.Range('A2'), .Range('A500').End(xlUp))
End With
ComboBox1.List = TabPlage
End Sub
Maintenant il y a la méthode AddItem pas si compliquée :
Private Sub UserForm_Initialize()
Dim Ligne As Integer
For Ligne = 2 To Worksheets('La Feuille Avec des Espaces').Range('A500').End(xlUp).Row
ComboBox1.AddItem Worksheets('La Feuille Avec des Espaces').Cells(Ligne, 1)
Next
End Sub
Que l'on peut rendre plus concise de la manière suivante :
Private Sub UserForm_Initialize()
Dim Ligne As Integer
With Worksheets('La Feuille Avec des Espaces')
For Ligne = 2 To .Range('A500').End(xlUp).Row
ComboBox1.AddItem .Cells(Ligne, 1)
Next
End With
End Sub
Voilà pour quelques bases (
Comme l'a dit Barbara, si tu cherches dans les Archives à 'UserForm Rudiment @+Thierry' en recherche 'Sujet' et 'Corps des messages', tu devrais trouver pas mal de petites Démos)
Par ailleurs, les différences essentielles annoncées par Barbara sont exactes.
En plus, on peut aussi préciser, qu'une ComboBox est une sorte d'Hybride entre la ListBox et la TextBox, car une ComboBox peut aussi servir à incrémenter de nouvelles données dans la Liste qui lui sert de référence, ce qui évidemment est impossible avec une ListBox toute seule.
Bonne Journée
[ol]@+Thierry[/ol]