Listbox ou combobox ???

dolphin

XLDnaute Occasionnel
Bonjour Forum,


J'aimerais savoir comment défini une liste dans un userform ? Dois-je utiliser un listbox ou un combobox ? J'aimerais que l'utilisateur effectue un choix via une liste déroulante.


Ma liste est définie dans mon classeur ( par exemple a1:a20).


Quelle est la différence entre le listbox et le combobox?


Je vous remercie à l'avance de votre aide et suggestion, c'est grandement appréciée.


Dolphin

;)
 
B

barbara

Guest
bonjour Dolphin,

il y a 2 differences essentielles :

dans une listbox tu peux faire plusieurs selections et pas dans une combobox

mais dans une combo l'utilisateur peut saisir lui même les données qu'il recherche alors que dans la listbox il ne peut que cliquer


bonne soirée
barbara
 

dolphin

XLDnaute Occasionnel
Bonjour Barbara, bonjour Forum,


Merci pour tes explications, si je comprend bien je dois utiliser le combobox. Donc comment dois-je le définir pour obtenir la liste qui est dans mon classeur ( par exemple a1:a20)?


Merci beaucoup et bonne journée ...


Dolphin

;)
 
B

barbara

Guest
bonsoir,

Regarde le fichier : un exemple de cpmbobox
cela il peut y avoir différentes méthodes pour remplir une combobox ou une listbox
cela dépend de ce que tu veux faire
(dans les archives du forum, il y a une demo de Thierry sur le sujet)

bonne soirée
barbara [file name=Classeur1_20060507202216.zip size=9336]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20060507202216.zip[/file]
 

Pièces jointes

  • Classeur1_20060507202216.zip
    9.1 KB · Affichages: 745

dolphin

XLDnaute Occasionnel
Bonsoir Forum, Bonsoir Barbara,


J'ai travaillé sur l'exemple que a gentillement annexé dans ton message.


Je rencontre un très gros problème, c'est que la feuille dans lequel contient l'information est redéfini ( par exemple : test A ). Je dois changer la définition de ta procédure. Elle me donne toujours un message d'erreur :


Private Sub UserForm_Initialize()
Dim DL As String
DL = Worsheets('test A').Range('a1').End(xlDown).Address
ComboBox1.RowSource = 'test A!a1:' & DL
End Sub



C'est dans la dernière partie que cela ne fonctionne pas ( celle en rouge ). J'aimerais savoir pourquoi ?


Merci à l'avance de votre aide et de vos suggestions

Dolphin



;)
 

dolphin

XLDnaute Occasionnel
Bonsoir Marc. Bonsoir Forum,

J'ai essayé ta suggestion et cela ne fonctionne pas ( toujours le même message )

message d'erreur :

Could not set the rowSource property. Invalid property value.


Merci pour ton aide, si vous avez d'autre suggestion, je les apprécie grandement ...


Dolphin

:(
 

dolphin

XLDnaute Occasionnel
Bonsoir Marc_du_78, Bonsoir Forum,


J'ai visualisé ton lien. J'ai été chercher l'exemple. Dans l'exemple il défini dans les propriétés du combox un rowSource.... Comment le faire ? J'aimerais bien comprendre ...


Merci de votre patience et de votre aide, je l'apprécie beaucoup

Dolphin

:(
 
M

Mytå

Guest
Salut Dolphin, Barbara, Marc_du_78 et le Forum

Code:
Ma liste est définie dans mon classeur ( par exemple a1:a20)

Pour une plage nommée, si j'ai bien compris

Code:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = 'Liste'
End Sub

Liste à remplacer par le nom de ta plage nommée.

Mytå

Message édité par: Mytå, à: 08/05/2006 06:28
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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]
 
A

AV

Guest
Re,

''...Par conséquent, les Listes de Validations, sont forcément exclues...''

Comme tu l'as surement compris, il ne s'agissait, évidemment pas, de répondre directement à la question mais plutôt de ''subodorer'' le niveau de connaissances du questionneur pour lui proposer une réponse dont il pourra ''assurer le suivi''

Quand il dit ''Quelle est la différence entre le listbox et le combobox? '', on peut supposer qu'il a peut-être sauté des étapes....

J'élargis.....
Sur un plan général (et pas que sur ce forum), bien des réponses sont en totale inadéquation avec le niveau du questionneur.
Exemple : beaucoup d'utilisateurs se lancent dans les UF (et donc le Vba) s'en être passé (au moins un minimum) par les étapes indispensables des fonctions et fonctionnalités natives d'XL.

De temps en temps, il me semble qu'un bon conseil, et préférable à une bonne réponse.

Volià, c'était ma digression (par rapport à la question)du jour à 2 balles !

AV [aaa]
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour Alain

Oki Doki !

Oui sur ce point tu as raison, c'est vrai que j'ai aussi remarqué souvent ce phénomène, les gens veulent 'bruler les étapes', faut-il leur en vouloir...

Pour ma part, je pense que Dolphin va sûrement avoir quelques maux de crane, et soit il abandonne, soit il franchit le cap !

Et c'est vrai que les UserForms InterActifs c'est trop tentant ;)

Mais je comprends tout à fait ta démarche Alain.

Bonne Journée, je file chez mon Kiné !

[ol]@+Thierry[/ol]
 

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino