Menu déroulant en cascade [Avec:PJ]

  • Initiateur de la discussion Initiateur de la discussion OPS3N
  • 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 !

OPS3N

XLDnaute Nouveau
Bonjour à vous,

Alors voilà j'ai un petit sujet sur excel qui me tracasse fortement!!
J'ai créé un fichier excel qui me permet de référencer des entreprises en leurs demandant des documents et savoir quand les relancer... aujourd'hui je veux classer ces entreprise selon 2 menus déroulants, le premier permet de choisir le corps de métier de l'entreprise, le deuxième permet de choisir une entreprise dans la liste de nos prestataires et de voir afficher par magie les dates de validités des documents.

La liste qui fait appel au document n'est pas un problème mais la liste qui me permet de référencer ces entreprises par corps de métier et totalement incomprise.

Si vous pouviez me donner un petit coup de pouce, je mets en PJ le doc test que je viens de créer selon mon modèle.
J'ai regardé beaucoup de site et de topic ici même mais j'ai pas trouvé.
Merci beaucoup (vous avez 2h pour rendre vos copies, calculette et compas autorisés)😎
 

Pièces jointes

Re : Menu déroulant en cascade [Avec😛J]

Bonjour OPS3N et bienvenue,

J'ai regardé beaucoup de site et de topic ici même mais j'ai pas trouvé.
Pourtant, avec "listes en cascades" tu aurais dû trouver des solutions (sans doute parmi un nombre assez conséquent 🙂)

Une solution (parmi d'autres) en pièce jointe. Liste des corps de métiers en colonne J (je l'ai inscrite "en dur", tu ne précisais pas si les choses changeaient régulièrement). En colonne L, une formule matricielle qui affiche les entreprises, en fonction du corps de métier sélectionné en E3. Dans la Validation en E4, une autre formule, qui ne récupère, en colonne L, que les cellules non-vides.

... le tout si j'ai compris à peu près correctement!
 

Pièces jointes

Re : Menu déroulant en cascade [Avec😛J]

Il s'agit là d'une solution très intéressante mais je pensais, sans avoir à retoucher à ma configuration, pouvoir importer directement et facilement les corps de métier depuis le sommaire jusque dans ma liste déroulante (sans créer un tableau comme tu l'as fait à droite) ?

J'ai plus de 200 entreprises et environ 35 corps de métier différents...
 
Re : Menu déroulant en cascade [Avec😛J]

Bonjour,

Les corps de métiers repris en ligne 1 de la feuille "SOMMAIRE" contiennent des doublons ... Il y aurait donc des doublons aussi dans ta liste déroulante, si tu les importes "comme tels".

Si on veut exclure les doublons, il me semble qu'il faut utiliser une plage de cellules, pour dresser une liste sans doublons ... ou alors travailler avec une macro, pour garnir cette liste, sans utiliser de plage de cellules "intermédiaire"!?
 
Re : Menu déroulant en cascade [Avec😛J]

Bonsoir,

-Avec saisie intuitive caractère par caractère (si on frappe c en e3, on obtient les corps de métier commençant par c
-Sans saisie intuitive

JB
 

Pièces jointes

Dernière édition:
Re : Menu déroulant en cascade [Avec😛J]

Bonjour,

Merci d'avoir répondu à tous.

C'est exactement ce que je voulais BOISGONTIER. PARFAIT!!!

Merci beaucoup, si tu peux me décrire la marche à suivre pour que je puisse faire la manip à grande échelle.
Je vais me plonger dessus tout de suite.

Cordialement
 
Re : Menu déroulant en cascade [Avec😛J]

Bonjour,

Pour la version sans saisie intuitive:

Créer 2 noms de champ:

choix1 =SOMMAIRE!$C$1:$IV$1
choix2 =SOMMAIRE!$C$2:$IV$2

-Clic-droit sur le nom du premier onglet
-Visualiser le code
-Copier/coller du code

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$E$3" Then
    Set d = CreateObject("Scripting.Dictionary")
    For Each c In [choix1]: d(c.Value) = "": Next c
    Target.Validation.Delete
    Target.Validation.Add xlValidateList, Formula1:=Join(d.keys, ",")
    [e4] = ""
  End If
  If Target.Address = "$E$4" Then
    Set d = CreateObject("Scripting.Dictionary")
    For Each c In [choix2]
       If c.Offset(-1).Value = [E3] Then d(c.Value) = ""
    Next c
    Target.Validation.Delete
    Target.Validation.Add xlValidateList, Formula1:=Join(d.keys, ",")
  End If
End Sub

JB
 
Dernière édition:
Re : Menu déroulant en cascade [Avec😛J]

Merci de ton retour, j'ai eu beaucoup de chose à faire et je n'avais pas pu me pencher sur ta proposition!

ça marche SUPER BIEN!!

Merci beaucoup...
 
Dernière édition:
Re : Menu déroulant en cascade [Avec😛J]

J'ai un petit message qui s'affiche à chaque réouverture.

Code:
ERREUR:

<?xml version="1.0" encoding="UTF-8" standalone="true"?>
-<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error064720_01.xml</logFileName><summary>Des erreurs ont été détectées dans le fichier « X:\01-ADMINISTRATIF\Technique\DOSSIERS AGREMENT ENTREPRISES PRESTATAIRES\Dossiers agrément des entreprises\Dossier agrément entreprise.xlsm »</summary>-<removedFeatures summary="Liste des fonctionnalités supprimées ci-dessous :"><removedFeature>Fonction supprimée: Validation des données dans la partie /xl/worksheets/sheet1.xml</removedFeature></removedFeatures></recoveryLog>
 
Dernière édition:
Re : Menu déroulant en cascade [Avec😛J]

Pour info je suis sur une version Microsoft Excel 2013 et le format du fichier enregistré est en Microsoft Excel Macro-Enabled Worksheet (.xlsm)

et le code que j'ai recopier est:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$E$3" Then
    Set d = CreateObject("Scripting.Dictionary")
    For Each c In [CORPSMETIER]: d(c.Value) = "": Next c
    Target.Validation.Delete
    Target.Validation.Add xlValidateList, Formula1:=Join(d.keys, ",")
    [e4] = ""
  End If
  If Target.Address = "$E$4" Then
    Set d = CreateObject("Scripting.Dictionary")
    For Each c In [ENTREPRISES]
       If c.Offset(-1).Value = [E3] Then d(c.Value) = ""
    Next c
    Target.Validation.Delete
    Target.Validation.Add xlValidateList, Formula1:=Join(d.keys, ",")
  End If
End Sub


le message d'erreur est
Fonction supprimée: Validation des données dans la partie /xl/worksheets/sheet1.xml
 
Re : Menu déroulant en cascade [Avec😛J]

Bonjour OPS3N,

Le fichier de Jacques Boisgontier au message #6 fonctionnait sans erreur sur ta machine?
... Parce que, si oui, on peut supposer que ce n'est pas sa proposition qui provoque une erreur, mais l'adaptation éventuelle que tu en as faite? Et si c'est bien le cas, il vaudrait peut-être mieux déposer une version allégée et anonymisée de ton fichier 😕
Koi qu'c'est-y qu't'en penses? 🙂
 
Re : Menu déroulant en cascade [Avec😛J]

Bonsoir,

J'aurais bien aimé revenir avec une explication ... mais je n'en ai pas! Par contre, sous XL 2013, j'ai bien le même souci que toi! J'ai re-testé celui de JB au message #6, enregistré, rouvert, etc ... pas le moindre souci!

J'ai essayé différentes choses:
- ne recopier que les feuilles utiles dans un nouveau classeur (il y avait un objet nommé Feuil2 dans ton fichier, mais qui ne correspondait pas à une feuille de calcul et n'était visible que dans le VBE 😕) ... ça n'a rien amélioré de le supprimer
- ne créer une entrée du dico que pour les cellules non-vides de la plage CORPSDEMETIER
- remplacer les '/' dans les corps de métiers par un '-' ... rien n'y a fait: toujours le même message
- en désespoir de cause, je recopie les entrées de dico dans une plage (nommée dynamiquement) dans la nouvelle feuille Listes ... et là, plus de message!? Voir dans Formules > Gestionnaire de noms > ListCM

Par contre rien de changé au code de JB pour la validation en E4 et là, il n'y a pas de souci 😕
Quelque chose m'échappe sans doute 🙁 Si JB (ou quelqu'un d'autre) passe par ici et peut éclairer ma lanterne, j'apprécierais 🙂
 

Pièces jointes

Re : Menu déroulant en cascade [Avec😛J]

hmmm hmmm tu penses que c'est la d'où viens mon problème... je vais essayer sur mon ficher orignal.
Je te tiens au courant.


Quelques minutes plus-tard.

Alors j'ai mis ma liste dans une nouvelle feuille mais toujours le même message d'erreur.
 
Dernière édition:
- 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
8
Affichages
827
L
Réponses
3
Affichages
739
LeGrosMatou
L
Retour