XL 2019 VBA - Problème ComboBox en cascade

bapt0201

XLDnaute Nouveau
Bonjour le forum,

Je travaille sur la réalisation d'une petite application a partir d'un Userform mais étant novice en VBA j'ai de grosses difficultés, en cherchant un peu j'ai trouvé des réponses similaires mais je n'arrive pas a les adapter. Je me tourne donc vers vous en espérant que vous puissiez m'aider.

L'objectif est de récupérer les données d'une feuille "Base de données VBA" puis les mettre en forme différemment selon la feuille "structure fichier" pour pouvoir réaliser des calculs pour des reportings. (je n'en suis pas la pour le moment)

Je pensais dans un premier temps utiliser des combobox pour sélectionner mes critères de recherche :
- Le 1er problème, c'est que je n'ai pas réussi a les alimenter en cascade, notamment les combobox territoire et département
- Le deuxième problème, c'est que mon combobox pour les offres et les couts sont alimentés en ligne( les en tête du tableau a partir de la colonne L) et je souhaiterais masquer les colonnes qui n'ont pas été sélectionnées. (comme un filtre en ligne mais dans ce cas pour les colonnes)

Voici le fichier simplifié car un peu lourd, cela sera sans doute plus parlant

Il y a peut-être un moyen plus simple pour le faire ou l'optimiser donc n'hésitez pas a me dire si vous avez d'autre idée.
J'espère que mes explications sont suffisamment claires.

Merci par avance
 

Pièces jointes

  • exemple fichier pricing.xlsm
    52 KB · Affichages: 7
Solution
Voilà une ébauche avec juste la définition de l'objet ComboBoxLiées, et, en attendant le filtre gardé.
Mais c'est un peu dommage parce qu'il sait filtrer tout seul jusqu'à aboutir à une seule ligne s'il y avait d'avantage de ComboBox prises en charge.

bapt0201

XLDnaute Nouveau
Ok je vais regarder ça alors :)
La fonction gigogne est utile dans quel cas par exemple ?
Bonjour
J'ai naturellement fait d'autres choses, dont mon CouleurCls.xlsm :
Des tirages aléatoires en tout genre pour compétitions
Une fonction Gigogne qui est très pratique lorsqu'on préfère utiliser vba plutôt que Power Pivot que beaucoup préfèrent.
Regardez aussi les classeurs que je joins aux discussions auxquelles je participe. Leur noms commence souvent par un mot indiquant le thème, CBxLiées, ListeAléat etc. suivi du pseudo du demandeur.

Concernant le projet principal :
J'ai créé une nouvelle base de données pour mon fichier que j'ai implanté à la place de l'autre mais certains combobox ne fonctionnent plus, par exemple pour certains territoires, le combobox département est bloqué alors qu'il fonctionne avec d'autres. Avez-vous une idée d'où peut venir le problème ?
 

Dranreb

XLDnaute Barbatruc
La fonction Gigogne permet d'établir des rapports classés et regroupé en rubriques et sous-rubriques par des boucles For Each SsGrEnfant In SsGrParent.Co imbriquées
Il faudrait que je voie le classeur avec la nouvelle base de donnée.
 

Dranreb

XLDnaute Barbatruc
Ah, je crois que vous parlez du déploiement non pertinent de la liste quand elle est trop longue. Il est néanmoins quand même possible par Alt+Flèche bas. Mais le plus judicieux c'est sans aucun doute d'y taper d'abord quelque chose.
Deux autre voies existent toutefois pour favoriser la réapparition du bouton flèche: 1) — Augmenter la propriété ListRow de la ComboBox, 2) — Affecter, dans la UserForm_Initialize, à CLs.LMaxDropBtn le nombre maxi de lignes où l'affichage des listes de toutes les ComboBox dont il a la charge est toujours proposé.
 

bapt0201

XLDnaute Nouveau
Ah, je crois que vous parlez du déploiement non pertinent de la liste quand elle est trop longue. Il est néanmoins quand même possible par Alt+Flèche bas. Mais le plus judicieux c'est sans aucun doute d'y taper d'abord quelque chose.
Deux autre voies existent toutefois pour favoriser la réapparition du bouton flèche: 1) — Augmenter la propriété ListRow de la ComboBox, 2) — Affecter, dans la UserForm_Initialize, à CLs.LMaxDropBtn le nombre maxi de lignes où l'affichage des listes de toutes les ComboBox dont il a la charge est toujours proposé.
J'ai augmenté la propriété ListRow, le problème est réglé merci beaucoup, je n'avais pas fait attention a ce paramètre, la solution était pourtant si simple... 🙄
 

Discussions similaires

Haut Bas