Liste déroulante en cascade sur VBA
Résolu
JennySn
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
JennySn Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
JennySn Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je prépare un fichier de suivi de formations pour des agents. J'ai déjà créé/modifié un certain nombre de macros mais je bloque sur la suppression d'une formation.
Pour cette manip, j'aimerais qu'en cliquant sur le bouton "supprimer formation", une fenêtre s'ouvre avec 2 listes déroulantes : la 1ère servirait à choisir la catégorie de la formation, la seconde afficherait les différentes formations de la catégorie sélectionnées.
Les données des formations sont contenues dans la colonne A de ma feuille "Formations" dans l'ordre suivant :
CATEGORIE 1 (A4)
Formation 1 (A5)
Formation 2 (A6)
...
CATEGORIE 2 (A19)
Formation 1 (A20)
Formation 2 (A21)
...
CATEGORIE 2 (A33)
Formation 1 (A34)
Formation 2 (A35)
...
Evidemment, il n'y a pas le même nombre de formations dans chaque catégorie...
J'ai préparé un UserForm, j'ai réussi à ajouté les catégories en utilisant le code suivant :
Private Sub UserForm_Initialize()
ComboBox1.Clear
With Me.ComboBox1
.AddItem "Combustible"
.AddItem "Dechet"
.AddItem "Transport"
.AddItem "Manutention"
.AddItem "Securite_surete"
.AddItem "Surveillance"
End With
End Sub
Mon problème se complique ensuite. Après avoir renommé mes plages de formations (ex : A5:A18 se nomme Combustible), j'ai tenté ça :
Private Sub ComboBox1_Change()
Dim categorie As String
categorie = CaracSpec(ComboBox1.Value)
If NomDefini(categorie) Then
ComboBox2.List = Application.Transpose(Range(categorie))
End If
End Sub
Mais cela ne fonctionne pas, peu importe la catégorie choisie, la 2ème liste déroulante ne me propose que les formations du combustible.
Pouvez-vous m'aider s'il vous plait ?
Je prépare un fichier de suivi de formations pour des agents. J'ai déjà créé/modifié un certain nombre de macros mais je bloque sur la suppression d'une formation.
Pour cette manip, j'aimerais qu'en cliquant sur le bouton "supprimer formation", une fenêtre s'ouvre avec 2 listes déroulantes : la 1ère servirait à choisir la catégorie de la formation, la seconde afficherait les différentes formations de la catégorie sélectionnées.
Les données des formations sont contenues dans la colonne A de ma feuille "Formations" dans l'ordre suivant :
CATEGORIE 1 (A4)
Formation 1 (A5)
Formation 2 (A6)
...
CATEGORIE 2 (A19)
Formation 1 (A20)
Formation 2 (A21)
...
CATEGORIE 2 (A33)
Formation 1 (A34)
Formation 2 (A35)
...
Evidemment, il n'y a pas le même nombre de formations dans chaque catégorie...
J'ai préparé un UserForm, j'ai réussi à ajouté les catégories en utilisant le code suivant :
Private Sub UserForm_Initialize()
ComboBox1.Clear
With Me.ComboBox1
.AddItem "Combustible"
.AddItem "Dechet"
.AddItem "Transport"
.AddItem "Manutention"
.AddItem "Securite_surete"
.AddItem "Surveillance"
End With
End Sub
Mon problème se complique ensuite. Après avoir renommé mes plages de formations (ex : A5:A18 se nomme Combustible), j'ai tenté ça :
Private Sub ComboBox1_Change()
Dim categorie As String
categorie = CaracSpec(ComboBox1.Value)
If NomDefini(categorie) Then
ComboBox2.List = Application.Transpose(Range(categorie))
End If
End Sub
Mais cela ne fonctionne pas, peu importe la catégorie choisie, la 2ème liste déroulante ne me propose que les formations du combustible.
Pouvez-vous m'aider s'il vous plait ?
A voir également:
- Liste déroulante en cascade vba userform
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Site dangereux liste - Guide
J'ai voulu vous mettre un fichier mais je n'arrive pas à le faire... Comment puis-je l'ajouter ?
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
ou
'mon partage
https://mon-partage.fr/
Je recupere le baigneur
A+
Deux anomalies:
1/ lister les plages nommees ne marche que pour le classeur, pas une feuille, donc a chaque fois pas de liste OK
2/ vous avez toujours la meme liste car vous avez mis Formations!A5:A18 dans RowSource de Combobox2. Si la recherche de la plage nommee avait marche vous auriez peut-etre pu le voir
Fichier modifie: https://mon-partage.fr/f/TRk7W9OD/