OVH Cloud OVH Cloud

Problème de liste déroulante et de VBA

12 réponses
Avatar
cygab
Bonjour à tous,

après avoir lu vos contributions, je me suis lancé dans la construction de
listes déroulantes. En fait j'ai besoin de quatre listes déroulantes sur une
même diapo. J'ai utilisé le code suivant en l'adaptant à chaque liste :

Private Sub ComboBox1_DropButtonClick()
With ComboBox1
.AddItem "OUI définitif"
.AddItem "OUI MAIS"
.AddItem "NON MAIS"
.AddItem "DEMISSION générale"
End With
End Sub

Mon problème, c'est qu'à chaque utilisation d'une des liste déroulantes, je
me retrouve avec les items mais multipliés... dans la liste, on va avoir 8
choix au lieu des 4 précisés dans le code...

Je n'y arrive pas. Pouvez-vous m'aider...?
Merci d'avance

2 réponses

1 2
Avatar
Tisane
Bonjour cygab,

Merci pour vos conseils mais, au risque de paraître naïf,
qu'appelez-vous "objets" ?


Les objets s'appellent en fait des contrôles (ils permettent notamment de
"contrôler" des actions qu'on leur associe).
Une liste déroulante (ComboBox), une zone de texte (TextBox), une case à
cocher (CheckBox), etc. sont des contrôles.
Un nom est attribué par défaut à chaque contrôle que tu crées, en
l'occurrence "ComboBox1", "ComboBox2, etc. pour tes listes déroulantes.
Mais ce n'est pas toi qui a nommé ces "objets de façon si simpliste" comme
le laisse entendre "LE spécialiste VBA du forum". C'est automatique.
On peut les renommer (propriété Name) pour leur donner un nom plus
significatif. Dans ce cas, il faut modifier toutes les références à ce nom
dans le code.
Pour tes diapos, si tu n'as que ces 5 contrôles, et vu la simplicité du
code, je ne suis pas certaine que Reponse1, Reponse2 au lieu de ComboBox1 ou
2 te sorte d'une amnésie partielle.

Cela dit, la remarque reste bonne pour les codes plus complexes et lorsque
les contrôles sont nombreux et peuvent prêter à confusion.
Il est bon de le faire systématiquement lorsqu'on développe une base de
données par exemple, mais dans PowerPoint et pour le programmeur du dimanche
;-))
Justement, en parlant de dimanche... j'y retourne !

--
Tisane


Bonjoir(c) cygab
juste un conseil, éviter de nommer vos objets de façon si simpliste.
Il n'y a rien de pire quand on reprend un code quelques temps plus
tard (temps qui peut être des années) et de lire quelque chose qui
était pourtant tellement évident lors de la création
--
JièL / Jean-Louis GOUBERT - Bonne année 2007





Le 06/01/2007 17:11 vous avez écrit ceci :
Merci beaucoup à vous, ça fonctionne. Je viens de comprendre le
fonctionnement de l'interface VBA, c'est à dire le fait que le code
des différentes combobox apparait dans la même fenêtre...
Merci encore, c'était urgent et je respire !!! Bonne fin de
week-end. http://cjoint.com/?bgrknNH3mN

Le code définitif :

Private Sub ComboBox1_DropButtonClick()
If ComboBox1.ListCount = 0 Then
With ComboBox1
.AddItem "Votre réponse"
End With
End If
End Sub
----------------------------------------------
[...]






Avatar
cygab
Je me reconnais en "programmeur du dimanche" et je vous remercie pour
m'avoir dépanné un week-end et de façon aussi rapide.
merci encore.

"Tisane" a écrit dans le message de
news:
Bonjour cygab,

Merci pour vos conseils mais, au risque de paraître naïf,
qu'appelez-vous "objets" ?


Les objets s'appellent en fait des contrôles (ils permettent notamment de
"contrôler" des actions qu'on leur associe).
Une liste déroulante (ComboBox), une zone de texte (TextBox), une case à
cocher (CheckBox), etc. sont des contrôles.
Un nom est attribué par défaut à chaque contrôle que tu crées, en
l'occurrence "ComboBox1", "ComboBox2, etc. pour tes listes déroulantes.
Mais ce n'est pas toi qui a nommé ces "objets de façon si simpliste" comme
le laisse entendre "LE spécialiste VBA du forum". C'est automatique.
On peut les renommer (propriété Name) pour leur donner un nom plus
significatif. Dans ce cas, il faut modifier toutes les références à ce nom
dans le code.
Pour tes diapos, si tu n'as que ces 5 contrôles, et vu la simplicité du
code, je ne suis pas certaine que Reponse1, Reponse2 au lieu de ComboBox1
ou

2 te sorte d'une amnésie partielle.

Cela dit, la remarque reste bonne pour les codes plus complexes et lorsque
les contrôles sont nombreux et peuvent prêter à confusion.
Il est bon de le faire systématiquement lorsqu'on développe une base de
données par exemple, mais dans PowerPoint et pour le programmeur du
dimanche

;-))
Justement, en parlant de dimanche... j'y retourne !

--
Tisane


Bonjoir(c) cygab
juste un conseil, éviter de nommer vos objets de façon si simpliste.
Il n'y a rien de pire quand on reprend un code quelques temps plus
tard (temps qui peut être des années) et de lire quelque chose qui
était pourtant tellement évident lors de la création
--
JièL / Jean-Louis GOUBERT - Bonne année 2007





Le 06/01/2007 17:11 vous avez écrit ceci :
Merci beaucoup à vous, ça fonctionne. Je viens de comprendre le
fonctionnement de l'interface VBA, c'est à dire le fait que le code
des différentes combobox apparait dans la même fenêtre...
Merci encore, c'était urgent et je respire !!! Bonne fin de
week-end. http://cjoint.com/?bgrknNH3mN

Le code définitif :

Private Sub ComboBox1_DropButtonClick()
If ComboBox1.ListCount = 0 Then
With ComboBox1
.AddItem "Votre réponse"
End With
End If
End Sub
----------------------------------------------
[...]









1 2