Allie les caractéristiques d'un contrôle ListBox et d'un contrôle TextBox. Le principe de fonctionnement de ce contrôle, se décompose comme suit : 1 - Remplir le contrôle ComboBox avec des données.
Remplir le contrôle Combobox avec des données
Exemple : Afficher une liste de Domaines viticoles.
La propriété (name) du contrôle ComboBox est cboComboBox
Méthode 1 : Les données sont dans une feuille de calcul (Feuil1).
Méthode 2 : Les données sont figées et vous les ajoutez grâce à la méthode AddItem.
Méthode 3 : Les données correspondent à la liste des mois (Janvier, Février, ..., Décembre).
Méthode 4 : Les données sont figées et vous les ajouter grâce _
Sélectionner une données dans la liste
Récupérer l'item sélectionné
Récupérer une nouvelle valeur saisie
Private Sub OK_Click()
L'utilisateur peut entrer une nouvelle valeur, comme dans un contrôle TextBox
ou bien sélectionner une valeur existante comme dans un contrôle ListBox.
La liste d'un contrôle ComboBox se compose de lignes de données.
La propriété par défaut d'un contrôle ComboBox est la propriété Value.
2 - Choisir une de ces données en la sélectionnant.
3 - Récupérer la donnée sélectionnée à la fermeture du formulaire.
Me.cboComboBox.RowSource = "Feuil1!A1:A" & Sheets("Feuil1").Cells(1, 1).End(xlDown).Row
End Sub
With Me.cboComboBox
cboComboBox.AddItem "Domaine Alexis Rouge"
cboComboBox.AddItem "Domaine du Grand Crès Blanc"
cboComboBox.AddItem "Domaine du Grand Crès Muscat"
cboComboBox.AddItem "Domaine du Grand Crès Rosé"
cboComboBox.AddItem "Domaine du Grand Crès Rouge"
End With
End Sub
On va utiliser la méthode AddItem avec une variable (i).
Dim Mois(1 To 12) As String
Dim i As Integer
' Création d'un tableau des noms de mois
For i = 1 To 12
Mois(i) = Format(DateSerial(1, i, 1), "mmmm")
Me.cboComboBox.AddItem Mois(i)
Next i
End Sub
à la fonction VBA.Array(arglist).
Dim vaDepartment As Variant
Dim stDeptList() As String
Dim i As Integer
vaDepartement = VBA.Array("Ain", "Aisne", "Allier","Alpes-de-Hte-Provence", _
"Alpes-Hautes", "Alpes-Maritimes", "Ardennes")
ReDim stDeptList (0 To UBound(vaDepartement))
For i = 0 To UBound(vaDepartement)
stDeptList(i) = vaDepartement(i)
Next i
cboCombobox.List = stDeptList
End Sub
MsgBox "L'item sélectionné est : " & cboComboBox.Value, vbInformation
Unload Me
End Sub
nouvelle valeur dans la feuille Excel.
Lorsque l'on ajoute une nouvelle donnée, celle-ci se trouve en position ListIndex = -1.
On utilise pour cela un test sur la propriété ListIndex.
En régle génèrale, cette propriété ListIndex à la valeur -1 à l'ouveture du formulaire.
Si on sélectionne
la première donnée de la liste, la valeur ListIndex est égale à 0, et ainsi de suite.
Me.Hide
If Me.cboComboBox.ListIndex = -1 Then _
Sheets("Feuil1").Cells(1, 1).End(xlDown).Offset(1, 0).Value = Me.cboCombobox.Value
End Sub