Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplissage automatique d'une ComboBox

8 réponses
Avatar
Manu
Bonjour à tous,

J'essaie désespérément de déclencher le remplissage automatique d'un menu
déroulant dès l'ouverture d'un classeur (à partir d'une ComboBox placée sur
une Feuille de ce classeur, et non depuis une UserForm), afin d'afficher deux
sélections (sélection du mois et de l'année).
J'y arrive depuis un événement "classique" (clic sur bouton), mais
impossible de déclencher cette procédure à l'ouverture du fichier (avec
Workbook_Open), car j'obtiens systématiquement une erreur 424 de type "Objet
requis" (le code correspond pourtant bien au Name du contrôle), mais tout se
passe comme si le code ne "trouvait" pas le contrôle :

Private Sub Workbook_Open()

ComboBox1.AddItem = "Janvier"
ComboBox1.AddItem = "Février"
...
ComboBox1.ListIndex = 0

End Sub

Qu'ais-je raté ? Dois-je modifier certaines propriétés du contrôle (Locked,
...) ? Faut-il mieux préciser la source (localisation) du contrôle ?

8 réponses

Avatar
papou
Bonjour
Vite fait comme ça il me semble bien que tu as raté l'identité de la feuille
qui contient le contrôle.
Donc pour fonctionner il me semble que si tu ajoutes le codename de la
feuille par exemple, ça devrait mieux aller !
With Feuil1
.ComboBox1.AddItem = "Janvier"
.ComboBox1.AddItem = "Février"
.ComboBox1.ListIndex = 0

End with

Cordialement
Pascal

"Manu" a écrit dans le message de
news:
Bonjour à tous,

J'essaie désespérément de déclencher le remplissage automatique d'un menu
déroulant dès l'ouverture d'un classeur (à partir d'une ComboBox placée
sur

une Feuille de ce classeur, et non depuis une UserForm), afin d'afficher
deux

sélections (sélection du mois et de l'année).
J'y arrive depuis un événement "classique" (clic sur bouton), mais
impossible de déclencher cette procédure à l'ouverture du fichier (avec
Workbook_Open), car j'obtiens systématiquement une erreur 424 de type
"Objet

requis" (le code correspond pourtant bien au Name du contrôle), mais tout
se

passe comme si le code ne "trouvait" pas le contrôle :

Private Sub Workbook_Open()

ComboBox1.AddItem = "Janvier"
ComboBox1.AddItem = "Février"
...
ComboBox1.ListIndex = 0

End Sub

Qu'ais-je raté ? Dois-je modifier certaines propriétés du contrôle
(Locked,

...) ? Faut-il mieux préciser la source (localisation) du contrôle ?


Avatar
AV
with sheets("Feuil1")
.ComboBox1.AddItem "Janvier"
.ComboBox1.AddItem "février"

.....etc..

AV
Avatar
CAP2
Salut,

pour un combobox nommé combobox1 placé en feuille 1 :

Private Sub Workbook_Open()
Worksheets("Feuil1").ComboBox1.AddItem ("Test")
Worksheets("Feuil1").ComboBox1.AddItem ("Toto")
Worksheets("Feuil1").ComboBox1.AddItem ("Zaza")
End Sub

Ca marche ?

CAP2
Avatar
Manu
Impeccable ! Merci encore, Pascal.
Je pensais à quelque chose du genre, mais la connaissance de la syntaxe
précise à utiliser dans tel ou tel cas me manque en VBA pour Excel ...
Avatar
Manu
A CAP2 et AV : merci pour vos procédures, toutes les deux fonctionnent aussi !
Avatar
CAP2
Merci du retour Manu,

a plus,

CAP2
Avatar
Hervé
Bonjour Manu,
J'en rajoute une couche mais ici, pour simplifier je pense :

Private Sub Workbook_Open()
Dim I As Integer
With Feuil1.ComboBox1
For I = 1 To 12
.AddItem MonthName(I)
Next I
.ListIndex = 0
End With
End Sub

Hervé.

"Manu" a écrit dans le message de news:

Bonjour à tous,

J'essaie désespérément de déclencher le remplissage automatique d'un menu
déroulant dès l'ouverture d'un classeur (à partir d'une ComboBox placée
sur

une Feuille de ce classeur, et non depuis une UserForm), afin d'afficher
deux

sélections (sélection du mois et de l'année).
J'y arrive depuis un événement "classique" (clic sur bouton), mais
impossible de déclencher cette procédure à l'ouverture du fichier (avec
Workbook_Open), car j'obtiens systématiquement une erreur 424 de type
"Objet

requis" (le code correspond pourtant bien au Name du contrôle), mais tout
se

passe comme si le code ne "trouvait" pas le contrôle :

Private Sub Workbook_Open()

ComboBox1.AddItem = "Janvier"
ComboBox1.AddItem = "Février"
...
ComboBox1.ListIndex = 0

End Sub

Qu'ais-je raté ? Dois-je modifier certaines propriétés du contrôle
(Locked,

...) ? Faut-il mieux préciser la source (localisation) du contrôle ?


Avatar
Manu
Merci beaucoup, Hervé !
C'est une "couche supplémentaire" qui est fort bienvenue ! Après avoir
travaillé un certain temps avec VB "pur" (si j'ose dire), je m'étais demandé
justement comment interroger les options calendrier intégrées pour avoir un
code plus fonctionnel et plus épuré au niveau de l'injection des constantes
mensuelles, comme ce que tu me suggères ...