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
Citation:
PrivateSub UserForm_Initialize()
Dim TabPlage AsVariant
With Worksheets('La Feuille Avec des Espaces')
* * TabPlage = .Range('A2:A20')
EndWith
ComboBox1.List = TabPlage
EndSub
|
Que l'on peut améliorer pour avoir une Plage Dynamique :
Citation:
PrivateSub UserForm_Initialize()
Dim TabPlage AsVariant
With Worksheets('La Feuille Avec des Espaces')
* * TabPlage = Range(.Range('A2'), .Range('A500').End(xlUp))
EndWith
ComboBox1.List = TabPlage
EndSub
|
Maintenant il y a la méthode AddItem pas si compliquée :
Citation:
PrivateSub UserForm_Initialize()
Dim Ligne AsInteger
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
EndSub
|
Que l'on peut rendre plus concise de la manière suivante :
Citation:
PrivateSub UserForm_Initialize()
Dim Ligne AsInteger
* * With Worksheets('La Feuille Avec des Espaces')
* * * * For Ligne = 2 To .Range('A500').End(xlUp).Row
* * * * * * ComboBox1.AddItem .Cells(Ligne, 1)
* * * * Next
* * EndWith
EndSub
|
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]