Pb avec combobox.

Résolu
Signaler
Messages postés
5
Date d'inscription
vendredi 5 février 2010
Statut
Membre
Dernière intervention
6 janvier 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
bonjour à tous,
je viens tout juste de débuter en VBA!!

mon Soucis:

j'ai crée une combobox avec une liste de nombre, et lorsque je clic sur un élément de la liste, le texte cliqué n'apparaît pas dans la fenêtre de saisie.
j'ai essayé de changer les propriétés, en vain!

Le code correspondant à la ComboBox est le suivant:


Private Sub ComboBox4_Change()

i = 0
ComboBox4.Clear

While Not i = 31
i = i + 1
ComboBox4.AddItem i
Wend

End Sub



Quelqu'un peut m'éclairer ?
Merci

9 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
48
j'avais pas parlé du LOAD (activate) et CLICK ???

Private Sub UserForm_Activate()
    Dim i As Integer
    For i = 2009 To 2107
        ComboBox1.AddItem CStr(i)
    Next i
    ComboBox1.Style = fmStyleDropDownList
End Sub

Private Sub ComboBox1_Click()
    MsgBox ComboBox1.Text
End Sub


++
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonsoir,

ajouter dans la combo n'est pas sélectionner.
Ajoute ceci après le Wend, par exemple :

ComboBox4.Text = ComboBox4.List(0)

affichera dans la zone éditable de ta combo le 1er élément (0)
Tu peux choisir un autre index à la place de 0
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
48
salut,

le
ComboBox4.AddItem i
va déclenché le _Change
qui va donc déclencher le ComboBox4.Clear
etc...

tu ne dois pas boucler
charge tes items au _Load du userform, et travaille avec l'évènement _Click

++

[hr]
Messages postés
5
Date d'inscription
vendredi 5 février 2010
Statut
Membre
Dernière intervention
6 janvier 2012

Merci à vous deux pour vos réponses.

concernant celle de "ucfoutu":
ComboBox.Text est défini dans le code, mais je veux que se soit le clic qui doit définir mon text.
concernant celle de "PCPT":
Je suis entièrement d'accord sur le fait que je dois travailler sur le clic....en pseudo syntaxe ça donnerai celà:


Si Clic sur List(0) alors ComboBox4.Text= valeur de List(0)
Si Clic sur List(1) alors ComboBox4.Text= valeur de List(1)
.
.
.(ect)


Mais les questions sont:
_ Quelle est la Syntaxe en VBA?
_ Dois_je rentrer ce code dans Sub ComboBox4_Change() ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Mais qu'est-ce que tu racontes ?
Le click tout seul définit cette valeur et l'écrit spontanément dans la zone éditable de ta combo !
Je crois bien, par ailleurs, que tu devrais ouvrir ton aide en ligne sur les propriétés d'une combobox ...
Tu gagnerais ainsi un temps fou !

Regarde par exemple ce que fait ceci :

Private Sub ComboBox4_Click()
  MsgBox "tu as cliqué sur l'article d'index " & ComboBox4.ListIndex
  MsgBox "ComboBox4.Text renvoie son contenu ==>> " & ComboBox4.Text
  MsgBox "ComboBox4.List(ComboBox4.ListIndex) renvoie d'ailleurs la même chose ===>> " & ComboBox4.List(ComboBox4.ListIndex)
End Sub

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
5
Date d'inscription
vendredi 5 février 2010
Statut
Membre
Dernière intervention
6 janvier 2012

si je me suis permis de poster mon problème c'est que justement l'action du clic n'édite pas automatiquement la fenêtre de la combobox .
D'autre part je suis du genre à chercher par moi même et l'aide concernant la combobox je l'ai parcouru en long en large et en travers, en vain!
d'où ce post!

Ceci dit j'ai trouvé la soluce:
comme me l'a suggéré "PCPT", j'ai supprimé ma boucle et j'ai rajouté une ligne de commande avec Select Case clic!

Merci tout de même à vous deux,
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Heu....
Super bizarre, ton truc, là ...
Il y a des choses qui m'échappent (ou alors tes explications ne correspondent pas)
tu peux nous montrer ton code ?


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
5
Date d'inscription
vendredi 5 février 2010
Statut
Membre
Dernière intervention
6 janvier 2012

[u]
avec ce code j'ai pas de soucis:/u

Private Sub ComboBox3_Change()

Dim tabannee(100, 0) As Integer
Dim i As Integer 'compteur année
Dim a As Integer ' compteur ligne tableau
a = 0
i = 2009

While Not i = 2108
i = i + 1
tabannee(a, 0) = i
ComboBox3.AddItem tabannee(a, 0)
a = a + 1
Wend

Select Case Clic
End Select

End Sub


y a sûrement plus simple pour proposer le choix d'une année dans la composition d'une date mais le VBA et moi c'est que depuis quelques jours.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Ah !!!!
1) tu n'as pas du tout "fait ce qu'a dit PCPT" !!!
2) ton
Select Case Clic
End Select

a) ne sert à rien
b) est on ne peut plus ... surprenant ! (c'est vraoiment le moins qu'on puisse dire !)
Et j'ose à peine parler de ce :
tabannee(a, 0) = i 

alors que a est ici = i - 2010, tout simplement !
Je ne sais pas quel regard tu portes sur les choses, mais, là ... il vaudra sans doute mieux que tu reprennes tout à la base même ...
Mais bon courage, donc ...
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est