Combox pour les nuls ...

  • Initiateur de la discussion Xavier
  • Date de début
X

Xavier

Guest
Bonjour,

Ca fait au moins tout ca ... que je suis sur le probleme ... je commence à despérer alors ... j'appelle qui LE FORUM ...

C'est tout bete aujourd'hui j'aimerais faire un Combobox mais pour le remplir je n'y fais pas référence à des données préétablies mais simplement à 4 variables ( Be, Fr, Nd, Lu ). Par la suite j'ai un bouton juste à coté qui devrait lancer la procédure en fonction du choix du combobox ...

Voilà alors encore mille mercis

Xa
 
@

@+Thierry

Guest
Re Bonjour Xavier, le Forum

Pas non plus très claire ton histoire ! mais bon voixci mon interprétation :

Option Explicit

Private Sub UserForm_Initialize()
Dim Be As String, Fr As String, Nd As String, Lu As String

Be = "Belgique"
Fr = "France"
Nd = "Pays Bas"
Lu = "Luxembourg"

With Me.ComboBox1
.AddItem Be
.AddItem Fr
.AddItem Nd
.AddItem Lu
End With

End Sub


Private Sub CommandButton1_Click()
If ComboBox1.ListIndex = -1 Then Exit Sub
TheBigMacro Me.ComboBox1.Value
End Sub

Sub TheBigMacro(Pays As String)
MsgBox "Vous Venez de votez pour " & Pays
End Sub


Bonne Fin d'Aprèm
@+Thierry
 
L

lesuisse

Guest
Salut Thierry, Xavier, le forum, les Suisses et tuti quanti,

Par curiosité, je viens de copier le code que tu as écrit dans un fichier Excel...

Mais comment faire fonctionner le code à partir d'un bouton ?????

Pas moyen de le lancer... Ca doit être les matins suisses ça...

Merci pour votre aide !!

lesuisse vraiment trop suisse ce matin
 
@

@+Thierry

Guest
Bonjour le Suisse, Xavier, le Forum

Et bien c'est simple, tu dessines un UserForm (UserForm1) dans lequel tu mets une ComboBox (Combobox1) et un CommandButton (CommandButton1).

Tu mets ce code dans le Private Module de ce UserForm1...

Tu affectes une macro comme ceci à ton Bouton sur feuille :

Sub OuvrirUserform ()
UserForm1.Show
End Sub

C'est tout !!!
Bonne Journée
@+Thierry
 
X

Xavier

Guest
Bonjour

Pour répondre à ta question .... je crois qu'il suffit de créer dans ta feuille un combobox par la bare d'outils: control tools et ensuite c'est la meme regle que pour un userform ....

je ne peux hélas pas garantir la méthode mais c'est comme ca que je ferais ...


XA qui prépare une deuxieme question (peut etre) sur les combobox
 
@

@+Thierry

Guest
Bonsoir Xavier, François, le Suisse, le Forum

Pour la question de François, tu n'as pas mal répondu Xavier.

En complément d'info voici quatre méthode pour intégrer des données par programmation dans une ComboBox de Feuille :

Sub RempliComboBoxDeFeuilleMethodeA()

With Sheets("TaFeuille").ComboBox1
.AddItem "Toto"
.AddItem "Zaza"
.AddItem "Lulu"
.AddItem "Titi"
'etc etc
End With
End Sub


Sub RempliComboBoxDeFeuilleMethodeB()
Dim i As Byte
With Sheets("TaFeuille").ComboBox1
For i = 1 To 10
.AddItem Sheets("TaFeuilleDeDonnées").Range("A" & i)
Next
End With
End Sub


Sub RempliComboBoxDeFeuilleMethodeC()
Dim Plage As Variant
Plage = Sheets("TaFeuilleDeDonnées").Range("A1:A10")
Sheets("TaFeuille").ComboBox1.List = Plage
End Sub


Sub RempliComboBoxDeFeuilleMethodeD()
With Sheets("TaFeuille").ComboBox1
.ListFillRange = "TaFeuilleDeDonnées!A1:A10"
End With
End Sub

A noter que la dernière méthode peut se faire sans programmation par le mode Design en accèdant aux Propriétés de la ComboBox (Click Droit en Mode Design) et en inscrivant "TaFeuilleDeDonnées!A1:A10" en face de la propriété ListFillRange...


Mais, of course, par programmation on peut trouver la dernière ligne de la plage dynamiquement ... EXemple :

Sub RempliComboBoxDeFeuilleMethodeBDynamique()
Dim i As Byte

With Sheets("TaFeuille").ComboBox1
For i = 1 To Sheets("TaFeuilleDeDonnées").Range("A65536").End(xlUp).Row
.AddItem Sheets("TaFeuilleDeDonnées").Range("A" & i)
Next
End With
End Sub

Bonne Soirée
@+Thierry



Bonne Soirée
@+Thierry
 

Statistiques des forums

Discussions
312 772
Messages
2 091 975
Membres
105 134
dernier inscrit
ben_internet