Liste déroulante en cascade

  • Initiateur de la discussion Initiateur de la discussion anto59
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

anto59

XLDnaute Junior
Bonjour à tous,
je suis nouveau sur ce forum et j'aurais besoin de votre aide.

J'ai vu pas mal de posts qui parlaient des listes déroulantes en cascade mais moi j'aimerais savoir
s'il est possible de faire en sorte que la deuxième liste n'apparaisse qu'après le choix effectué dans
la première liste déroulante (à côté ou sur une autre feuille).

J'espère avoir été assez clair.
Merci d'avance.
 
Re : Liste déroulante en cascade

Bonjour anto59,

En cherchant un peu sur cet excellent forum, tu aurais trouver le fichier joint que j'ai "piquer" ici et dont je remercie encore une fois le ou les auteurs.

A+
 

Pièces jointes

Re : Liste déroulante en cascade

Merci pour ton message mais pour un soucis de présentation, j'aimerais que la deuxième liste ne soit pas tout de suite présente sur la feuille, ce qui n'est pas le cas dans cet exemple.
Le problème c'est que je ne sais pas si c'est possible.
 
Re : Liste déroulante en cascade

Merci, ça peut en effet bien m'aider.
En revanche j'ai deux petites questions:
-Où est ce que tu codes le fait de mettre la liste 1 dans le cas 1 et la liste 2 dans le cas 2?
-A quoi sert les Target.offset.select ?
 
Re : Liste déroulante en cascade

Re
Merci, ça peut en effet bien m'aider.
En revanche j'ai deux petites questions:
-Où est ce que tu codes le fait de mettre la liste 1 dans le cas 1 et la liste 2 dans le cas 2?
-A quoi sert les Target.offset.select ?

C'est dans la création des noms qu'on choisit la plage (voir : Insertion-->Nom-->Définir).
Les plages dépendent des listes définies (ici, en Feuil2).
Les noms sont quelconques (avec des interdits que tu découvriras en les essayant)

Target.offset(x ,y ).select sert à placer le curseur dans la cellule située à x lignes et y colonnes.
 
Re : Liste déroulante en cascade

Bonjour le forum

je reprends la conversation car j'ai des questions concernant ce fichier.
En particulier concernant la macro qui permet une fois le choix fait, le positionnement de la deuxième liste déroulante sur le premier élément.
Pour un fichier vraiment similaire ma macro ne marche pas, pouvez vous m'aidez?
La différence entre ce fichier posté et le mien c'est que

*J'ai ma base de données et mes listes déroulantes sur une même feuille
*ma première liste déroulante se trouve en A24 et la deuxieme en B24
*les données de mon premier choix se trouvent à la première ligne (A1,B1...)
*les données de mon 2ème choix sont en dessous du premier choix😛ar exp pour A1 mon 2ème choix se trouve en A2,A3 et A4, sachant que je ne dépasse pas 20 lignes pour le 2ème choix
*les noms de mes champs sont les suivants:
CHOIX1:=DECALER(feuille1!$A$1;;;;NBVAL(feuille1!$A$1:$AE$1))
CHOIX2:=feuille1!$A$1


Merci par avance
 
Re : Liste déroulante en cascade

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Col As Byte, Derli As Byte, Nom As String

If Target.Column > 2 Or Target.Address <> "$A$24" Then Exit Sub
On Error Resume Next
Application.EnableEvents = False
For Col = 1 To 9 '9 pour la dernière colonne
If Target = Cells(1, Col) Then
Derli = Cells(25, Col).End(xlUp).Row
Nom = Range(Cells(2, Col), Cells(Derli, Col)).Address
Exit For
End If
Next
With Cells(24, "B")
.Select
.ClearContents
.Validation.Delete
.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="=" & Nom
.Value = Cells(2, Col).Value
End With
Application.EnableEvents = True
End Sub


j'ai compris le code pour à peu près tout sauf pour la necessité de nommer les listes de 2ème choix

Evidemment je les ai nommées sur la 1ere feuille car je fais tout dessus mais je ne sais pas pourquoi la macro ne marche pas , ya il une obligation sur les noms à mettre pour ces listes

Merci d'avance
 
Re : Liste déroulante en cascade

Je ne sais pas exactement ou créer ces listes avec la fonction indirect.
J'ai tenté de le faire en B24 (emplacement de la liste déroulante de mon 2ème choix)
ça me propose bien les choix qu'il faut mais le positionnement de la deuxième liste déroulante sur le premier élément. nen se fait toujours pas :s
je pensais que la macro imposait à B24 quelle soit une liste de validation :Type:=xlValidateList

Merci de me renseigner plus par rapport à ça
 
Re : Liste déroulante en cascade

En A1
Tu crée d'abord une première liste de validation.
= NomListe

Chaque élément de cette liste doit être lier à une liste du même nom.

En B1
Tu créer une deuxième liste de validation
= Indirect (A1)
 
Re : Liste déroulante en cascade

Re,

avec ce code, tu n'as besoin de nommer que la liste en A24
Nom = Range(Cells(2, Col), Cells(Derli, Col)).Address

.Value = Cells(2, Col).Value
j'ai compris le code pour à peu près tout sauf pour la necessité 😕 de nommer les listes de 2ème choix
la ligne en rouge définit la plage de la liste de validation en B24 tandis que la ligne en bleu permet d'avoir le premier élément.

Si tu as encore des difficultés, envoie un morceau épuré d ton fichier.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
147
Réponses
40
Affichages
1 K
Retour