Afficher un message
Vieux 08/05/2006, 09h13   #13 (permalink)
_Thierry
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 099
Par défaut Re:Listbox ou combobox ???

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]
_Thierry est déconnecté   Réponse avec citation