VBA - débutant

Résolu/Fermé
greg1000 Messages postés 16 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 14 octobre 2008 - 3 sept. 2008 à 16:51
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 4 sept. 2008 à 14:32
Bonjour,
Je débute sur VBA. Je suis en train de reprendre un programme existant sur excel et je bloque à cause de mon manque de connaissance des codes VBA.
Voici mon problème :
J'ai une fenêtre de saisie type userform avec plusieurs champs type ComboBox.
Je définie une liste de champ dans les codes à l'ouverture de la zone de saisie mais je souhaiterai que la liste de champ de la boite 2 dépende de la valuer saisie dans la boite 1
Par exemple :

ComboBox1.clear
ComboBox2.clear

ComboBox1.AddItem "il fait soleil"
ComboBox1.AddItem "Il pleut"
ComboBox.ListIndex = 0

si on choisit il fait soleil dans la liste de choix, j'aimerais que les valeurs de ComboBox2 soit :

ComboBox2.AddItem "Va à la plagel"
ComboBox2.AddItem "Va faire du vélo"
ComboBox.ListIndex = 0

où si on choisit il pleut dans la liste de choix, j'aimerais que les valeurs de ComboBox 2 soit :
ComboBox2.AddItem "Loue un film"
ComboBox2.AddItem "Couche toi et repose toi"
ComboBox.ListIndex = 0

J'ai essayé la fonction if then mais bien sur, à l'établissement des validations des données, il part sur la valeur qui reste pas défaut donc la deuxième liste pour la boite 2 ne s'affiche pas.

D'ailleurs, je ne sais pas à quoi sert la fonction ListIndex ?

Merci de m'aider pour tous ces points.

3 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
4 sept. 2008 à 13:42
Bonjour,

Pour remplir ta 2ème combo à partir du choix de la première, il faut mettre le code dans l'évènement change() de la 1ère combo :

Private Sub ComboBox1_Change()

 Select Case ComboBox1.Text

   Case  "il fait soleil"
    ComboBox2.Clear
    ComboBox2.AddItem "Va à la plagel"
    ComboBox2.AddItem "Va faire du vélo"

   Case "Il pleut"
    ComboBox2.Clear
    ComboBox2.AddItem "Reste chez toi"
    ComboBox2.AddItem "Joue aux cartes"

 End Select

End Sub

Private Sub UserForm_Initialize()
ComboBox1.Clear

ComboBox1.AddItem "il fait soleil"
ComboBox1.AddItem "Il pleut"

End Sub


ListIndex positionne item qui doit être affiché. Le premier de la liste étant 0.

;o)
1
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
4 sept. 2008 à 14:32
De rien. N'oublie pas de mettre le post en "résolu".

Bonne continuation.

;o)
1
greg1000 Messages postés 16 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 14 octobre 2008 11
4 sept. 2008 à 14:31
Bonjour,
Merci beaucoup ... cela marche ... et j'ai tout compris !
0