VBA - débutant
Résolu
greg1000
Messages postés
16
Statut
Membre
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
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
- Find vba - Astuces et Solutions
- 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)