Bonjour à tous,
L'événement (Change) que tu as choisi pour remplir ta Combobox se déclenche quand?
Lors de la saisie d'une valeur dans ta combobox.
Fais le test, chez toi, avec le fichier transmis plus tôt, tu verras que cela fonctionne.
Test :
1- efface le 1 présent dans la combobox,
2- saisi n'importe quoi, par exemple : A,
3- clic sur la flèche d'ouverture
=> ta combobox est bien remplie...
Quel événement conviendrait mieux?
1- soit l'événement de ta combobox DropButtonClick
Private Sub ComboBox1_DropButtonClick()
ComboBox1.ColumnCount = 1
ComboBox1.Clear
Dim I As Long
For I = 1 To 12
ComboBox1.AddItem Sheets("Liste").Range("A" & I).Value
Next I
End Sub
2- Soit un événement de ta feuille, par exemple, si tu veux que ta Combobox se remplisse à chaque changement de valeur dans la cellule A1 de ta feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
ComboBox1.ColumnCount = 1
ComboBox1.Clear
Dim I As Long
For I = 1 To 12
ComboBox1.AddItem Sheets("Liste").Range("A" & I).Value
Next I
End If
End Sub
3- soit l'événement de ton classeur : SheetActivate
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Feuil1" Then
ComboBox1.Clear
Dim I As Long
For I = 1 To 12
ComboBox1.AddItem Sheets("Liste").Range("A" & I).Value
Next I
End If
End Sub
Après, il y a plus simple pour remplir une Combobox à partir de données saisies dans une feuille.
Le plus simple est de nommer le Range contenant tes données, grâce au gestionnaire de noms du classeur. Tu nommes, par exemple, la plage de cellules Liste!A1:A12 => donnees. L'appel de remplissage de ton combobox devient alors :
ComboBox1.List = Range("donnees")
A réviser donc, pour l'interro écrite de demain :
1- les événements,
2- les méthodes de remplissage d'une combobox