Listes déroulantes liées en cascade

Bonsoir à toutes et tous,

J'ai débuté il y a peu sur VBA et j'aimerais créer des listes déroulantes liées en cascade. Je m'explique...

J'ai un classeur (que j'ai simplifié pour poser ma question ici) avec plusieurs onglets :

  • un onglet Donnees, qui contient comme son nom l'indique mes données;
  • un onglet dest, une feuille "transitoire" pour mettre les choix des combobox;
  • un onglet reg, qui contient un combobox (contrôle activeX) qui doit afficher la liste de mes régions contenues dans Donnees;
  • un onglet dep, idem mais avec la liste des départements;
  • un onglet villes, idem mais avec la liste des villes.

J'ai donc besoin, quand je sélectionne une région dans le combobox de la feuille reg, que le combobox de la feuille dep me donne UNIQUEMENT les départements correspondants à cette région et idem pour les villes.

Je me suis très largement inspiré d'un code trouvé après de nombreuses recherches sur la toile, en essayant de l’adapter à mon cas mais j'obtiens une erreur (2 plus précisément mais sur la même "configuration" de code) dans l'écriture du code du module : "impossible de définir la propriété ListIndex. Valeur de propriété non valide."

Je me demande si ce n'est pas le fait de vouloir faire des combobox liés sur 3 feuilles séparées qui pose problème.

Je ne peux pas regrouper les trois combobox reg, dep et villes sur la même feuille, car après, j'aurai d'autres données à insérer dans chacune de ces feuilles, d'où mon besoin de le faire en 3 feuilles séparées.

Je vous joins mon fichier (je l'ai zippé de 2 façons différentes au cas où l'un fonctionne mieux que l'autre, mais les 2 fichiers sont les mêmes), en espérant avoir été clair dans mes explications...

Merci d'avance de votre aide,

Bonne soirée!

10tab-forum.zip (283.36 Ko)
5tab-forum.7z (188.20 Ko)

Bonjour,

Les deux fichiers font référence à une feuille dest_test qui n'existe pas dans ces conditions il est difficile d'analyser ton bricolage !

Supprimer les trop nombreuses lignes vides SVP.

A+

En effet, j'avais oublié de faire quelques changements par rapport à mon fichier initial au temps pour moi.

Je vous remets les fichiers, en espérant avoir tout corrigé.

galopin01 tout d'abord merci d'y avoir jeté un œil ; qu'entendez-vous par supprimer les lignes vides ? Vous parlez de celles contenues dans l'onglet dest notamment?

Pour l’instant je n'ai rien supprimé car il faudrait que je réécrive une grande partie du code et je ne peux pas le faire tout de suite... Si quelqu'un peut et veut bien m'aider quand même svp...

8tab-forum2.7z (189.95 Ko)
10tab-forum2.zip (284.99 Ko)

Tu as une erreur car le combo est vide... donc tu ne peux pas pointer sur le premier de la liste !

Et le combo est est vide car ta condition while au-dessus est fausse donc le programme n'entre jamais dans la boucle....

While Sheets("dest").Cells(ligne_c, 4).Value <> "Sélectionner un département"
'  => Sheets("dest").Cells(ligne_c, 4).Value = "Sélectionner un département" !!!

A+

Rechercher des sujets similaires à "listes deroulantes liees cascade"