Liste déroulante en cascade à 3 niveaux pour modification d'un tableau de donnée

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 !

CaptainMerlux

XLDnaute Nouveau
Bonjour les experts de l'Excel,

Dans mon dernier post je vous avais dit que j'avais résolu presque tous mes problèmes mais il s'avère que mon boss me demande une option de plus à mon fichier et alors là je suis dans le flou total.

Voici le contexte : il souhaite que l'on puisse suivre la mise en service d'un détection incendie (date, origine, bâtiment, nom de la détection concernée, heure de mise hors service, personne ayant mis hors service) puis plus tard dans la journée, mettre les informations concernant la remise en service de celles-ci.

Pour cela, j'ai créé un premier userform afin de saisir les premières données qui incrémenteront un tableau "Détection HS".
Là où je suis dans un flou intersidéral, c'est que je souhaite créer un second userform avec des listes déroulantes en cascade pour rechercher dans ma première combobox "la date" puis en lien avec celle-ci, ma seconde combobox me donnant "le lieu" (en corrélation avec la date saisie dans la CB1), et de la même manière une troisième combobox afin de sélectionner "ma détection concernée".
Une fois cette recherche effectuée, je devrais avoir l'information qui s'affiche dans ma listbox afin de cliquer dessus et retrouver les informations déjà saisie la concernant puis pouvoir la compléter avec les nouvelles données pour mettre à jour la ligne en question dans mon tableu.

Il faut savoir que mon tableau n'est pas une base de données avec des données prédéfinies mais bien avec des données que l'on incrémentera au fur et à mesure et qui pourront être des données totalement nouvelles.

J'ai trouvé une superbe ligne de code proposée par Jaques Boisgontier qui fonctionne super bien mais qui est de l'hébreu pour moi , petit novice en vba, et que je n'ai pas su appliquer.

Je vous propose donc une ébauche de mon travail (ne faites pas attention au combobox du premier userform qui ne fonctionne pas car leur RowSource se trouve sur mon fichier principal).

Auriez-vous une idée pour résoudre my problem ? 🙂
 

Pièces jointes

Bonjour mapomme,

Merci pour tout investissement, cela répond exactement à ma demande.

Je comprends quasiment tout le code, mais j'aimerai que la saisie des heures HS ne soient pas obligatoire, quelles lignes de code sont à supprimer, j'ai peur de faire une connerie 🙂

Merci pour tout
 
Bonjour @CaptainMerlux,
mais j'aimerai que la saisie des heures HS ne soient pas obligatoire

Le code a été modifié en ce sens (ça a été fait pour les quatre horaires donc aussi pour les remises en service ). A vous d'adapter...

A plus 🙂

nota 1 : le code a été commenté.

nota 2 : j'avais oublié de préciser que j'avais renommé un certain nombre de contrôles avec des noms plus parlant uniquement pour mieux me repérer dans le code.

nota 3 : pour les objets dictionary, il n'est plus nécessaire de faire référence au niveau VBA à la bibliothèque "Microsoft Scripting Runtime".
J'ai fait du "late binding" dans le code (comme disent les anglo-saxons). On ne déclare plus les dictionary dans une déclaration Dim Dim dico as new Dictionary mais directement dans une instruction Set dico = CreateObject("scripting.dictionary").

nota 4 : attention! L'objet Dictionary n'est pas disponible sous MAC.
 

Pièces jointes

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
40
Affichages
1 K
Retour