[VBA sous excel]

ksa -  
 Utilisateur anonyme -
Bonjour,

j'ai deux listes déroulantes dans un formulaire et je souhaite que l'une affiche des valeurs en fonction de la valeur sélectionnée sur l'autre.

par exemple la première aurais pour valeur sélectionnée "Septembre" et les valeurs disponibles dans le second champ seraient 01/09/08, 02/09/08, 03/09/08....

la première liste déroulante fonctionne très bien mais la deuxième ne me renvoi pas les valeurs en fonction de la liste 1...

en voici le code:

Private Sub ComboBox2_DropButtonClick()

Sheets("Feuille1").Select

a = 2 'la boucle commence à la colonne 2
Do Until Cells(2, a).Value = "" 'la boucle se répète tant que les cases contiennent des valeurs.

If ComboBox1.Value = Cells(2, a).Value Then 'les mois sont listés dans des cellules et si la valeur de la liste 1 est identique à celle d'une cellule parcourue alors
ComboBox2AddItem Cells(3, a).Value 'on ajoute a la liste 2 les jours correspondants au mois sélectionné.

End If

a = a + 7 'la boucle lit les 1 case sur 7

Loop

End Sub

avec ce code la liste est vide.

merci de m'éclairer.
A voir également:

2 réponses

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Ton code devrait fonctionner mais tes données sont disposées de façon un peu particulière semble-t-il car c'est curieux que tu sautes 7 colonnes.

En changeant ton 7 par un 1, tu obtiendras peut-être quelque chose : il me semble que c'est plus logique comme procédure.
1
ksa
 
En fait mes données sont situées dans une cellule formée par 6 cellules fusionnées, donc pour parcourir ces données je doit utiliser les coordonnées de la première des 7 cellules, soit k = k +7.

Pas d'autres solutions ?
0
ksa > ksa
 
désolé, c'est a = a+7 mais le principe est le même
0
Utilisateur anonyme
 
Bonjour,

suggestion :

la structure de contrôle :

Do Until blablabla
...DoEvents
Loop

est plutôt difficile à travailler

essayer :

While Cells(2, a).Value <> ""
...DoEvents
Wend

Lupin
1