VBA - débutant
Résolu
greg1000
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- VBA - débutant
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Excel compter cellule couleur sans vba - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum VB / VBA
3 réponses
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 :
ListIndex positionne item qui doit être affiché. Le premier de la liste étant 0.
;o)
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)