cs_MSau
Messages postés3Date d'inscriptionvendredi 14 novembre 2008StatutMembreDernière intervention27 novembre 2008
-
14 nov. 2008 à 09:14
cs_MSau
Messages postés3Date d'inscriptionvendredi 14 novembre 2008StatutMembreDernière intervention27 novembre 2008
-
14 nov. 2008 à 15:35
Bonjour à tous,
Ma question peut vous paraître très facile mais je suis débutante en
VB sous excel 2007. Après un bon bout de temps passé cette semaine à essayer de dompter
le contrôle Combobox je me résouts à vous demander de l'aide!!!!
Je souhaite faire choisir à l'utilisateur une des données présentes
dans une liste. J'ai donc insérer un combobox dans la feuille nommée
"Accueil " de mon fichier, et je demande de remplir la combobox par la
liste de données située dans une autre feuille du même fichier nommée
"Liste".
Voilà le code:
Private Sub ComboBox2_Change()
For i = 2 To 17
ComboBox2.AddItem Worksheets("Liste").Cells(i, 1), i - 2
Next
End Sub
J'ai également ajouté un bouton qui me permets de valider la sélection:
Private Sub Valide_Click()
Dim Nommois As String
Dim numero As String
Nommois = ComboBox2.Text
Nommois = Format(Nommois, "mmmm - yyyy")
MsgBox "Tableau de bord pour le mois de : " & Nommois
numero = ComboBox2.Text
End Sub
Petite précision, mes données sont de type Septembre 08 ... jusqu'à Décembre 09 en format Date.
- mon premier problème vient du format des données:
j'ai essayé de mettre
ComboBox2 = Format(ComboBox2, "mmmm-yyyy")
dans ma fonction change() après le Next
pour ne pas avoir dans ma liste déroulante les données sous forme 01/09/2008 par exemple mais ca ne marche pas
- mon second problème vient du fait que à chaque fois que je teste ma liste déroulante s'agrandit...
j'ai tenté de mettre
ComboBox2.Clear
dans ma fonction change avant le For. Cela vide bien ma liste avant de
la remplir mais ensuite je ne peux pas sélectionner une données dans la
liste... Ma msgBox donne "Tableau de bord pour le mois de : "
J'espère être clair!
Et j'espère que vous pourrez m'aider parce que ce point est bloquant pour finir mon projet...
cs_MSau
Messages postés3Date d'inscriptionvendredi 14 novembre 2008StatutMembreDernière intervention27 novembre 2008 14 nov. 2008 à 12:29
Salut,
Merci d'avoir pris le temps de me répondre.
Pour moi l'évènement change( ) devrait être exécuté lorsque l'utilisateur choisit une autre donnée. Ce qui m'amène à penser que ce n'est pas la peine de remplir le combobox à chaque fois vu que j'ai un nombre de données fixes... Une seule fois suffit.
Alors dans quel évènement placer le code?
cs_MSau
Messages postés3Date d'inscriptionvendredi 14 novembre 2008StatutMembreDernière intervention27 novembre 2008 14 nov. 2008 à 15:35
Re,
Je suis tout à fait d'accord. Les données sont fixes, donc je ne veux en fait remplir le combo qu'une seule fois.
J'ai tenté de le mettre dans Userform1_Activate()
Private Sub UserForm1_Activate()
Dim i As Integer
For i = 2 To 17
UserForm1.ComboBox1.AddItem Worksheets("Liste").Cells(i, 1), i - 2
Next
End Sub
Le problème c'est que j arrive pas à le tester. Quand je veux exécuter la fonction en mode débuggage le userform apparait et je voix pas comment aller plus loin...