Pb avec combobox.

Résolu
jolesrobineaux Messages postés 5 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 6 janvier 2012 - 6 févr. 2010 à 00:06
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 6 févr. 2010 à 19:14
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 févr. 2010 à 19:14
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


++
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 févr. 2010 à 00:40
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 févr. 2010 à 02:45
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]
0
jolesrobineaux Messages postés 5 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 6 janvier 2012
6 févr. 2010 à 09:59
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() ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 févr. 2010 à 11:24
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
0
jolesrobineaux Messages postés 5 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 6 janvier 2012
6 févr. 2010 à 17:33
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,
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 févr. 2010 à 17:47
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
0
jolesrobineaux Messages postés 5 Date d'inscription vendredi 5 février 2010 Statut Membre Dernière intervention 6 janvier 2012
6 févr. 2010 à 18:50
[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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 févr. 2010 à 19:14
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
0
Rejoignez-nous