Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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: 9
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.

Dranreb

XLDnaute Barbatruc
C'est cela. Le type d'offre à choisir doit être dans une seule colonne pour pouvoir isoler toutes les lignes ayant ce type d'offre dans cette colonne là.
Concernant l'installation automatique du fichier CBxLCtlA, je n'arrive pas a la lancer.
Quel est le problème exactement ?
Normalement lorsqu'on ouvre le CBxLCtlA;xlsm, il affiche :
Ce classeur n'est pas dans l'état définitif propre à son utilisation.
Son enregistrement dans votre dossier de compléments va vous être proposé.
Voulez vous d'abord une copie de sa feuille d'aide ?
Si on ne choisi jamais Annuler dans la suite du processus, ça doit se terminer par :
Installation terminée avec succès.
Dans votre application VBA vous pouvez à présent
cocher "CLsCAs", menu Outils, Références…
 
Dernière édition:

bapt0201

XLDnaute Nouveau
Voici le fichier avec la structure principale et les formules que j'utilise, j'ai ajouté des explications dans le fichier, je m'excuse pour l'orthographe j'ai du faire ca rapidement désolé. A mon avis, vous allez vite vous apercevoir de tous les inconvénients d'un tel fichier
 

Pièces jointes

  • Exemple fichier.xlsx
    670.6 KB · Affichages: 7

Dranreb

XLDnaute Barbatruc
Ayant ouvert votre classeur je peux vous dire que pour un UserForm de consultation et/ou de mise à jour de votre feuille BDD Conso utilisant mes modules de services ComboBoxLiées et ControlsAssociés, les colonnes "ID offre" et "Clé Agence/Offre" sont inutiles: l'objet ComboBoxLiées est toujours capable d'isoler une ligne ou un groupe de lignes combinant toutes les infos dans des colonnes séparées mais uniques chacune.
 

bapt0201

XLDnaute Nouveau
Je viens de voir vos précédents messages désolé, je n'avais pas répondu

Du coup c'est bon l'installation s'est lancé toute seule, je ne sais pas pourquoi ca n'a pas marché la 1er fois.

Dans le cas ou le fichier doit être utilisé sur un autre PC est-ce qu'il fonctionnerait quand même ou il faut plutôt utilisé la même configuration que dans le premier fichier que vous m'aviez partagé ?

@ChTi160 je cherche a faire quelque chose comme ca effectivement, cela implique donc de mettre les offres en colonnes comme la dit Dranreb si j'ai bien compris.

Merci beaucoup pour votre aide, a bientôt
 

Dranreb

XLDnaute Barbatruc
Dans le cas ou le fichier doit être utilisé sur un autre PC est-ce qu'il fonctionnerait quand même
Le complément xlam pourrait être installé sur la clé USB si le classeur voyage. Mais dès que ce n'est plus une ou plusieurs application pouvant y faire appel sur un seul PC, le plus sûr serait d'installer les modules de service dans les projets des classeurs d'application.

Il faut toujours une seule colonne par ComboBox prise en charge par un ComboBoxLiées.

Plusieurs tels objets s'appuyant sur des tableaux différents peuvent être utilisés dans un même UserForm, à condition qu'à chaque instant un seul d'entre eux soit actif s'il prennent en charge une même ComboBox. L'objet est muni de méthodes Stopper et Réactiver pour pouvoir le faire.
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
Après réflexion , je pense que j'ai tout faux , donc je vous laisse faire Lol
car je ne comprnds pas a quoi correspondent tout ces Chiffres des colonnes Offres et a quoi elle doivnet servir lors d'une recherche
par exemple si je détermine la Ligne 1 de la BDD que je veux le Prix de l'offre "
1 m3 (Big-bag) Encombrants" dois je renvoyer la Somme qui est sur la Ligne car on parle de Mini !
merci

ou alors cette BDD contient telle déjà les Minis déterminés pour chaque offre
une vue de la BDD !
Jean marie
 

Pièces jointes

  • TriBDD_4.gif
    198 KB · Affichages: 33
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Vous parlez de reporting au début.
À mon avis vous devriez reprendre le problème à zéro. La feuille BDD VBA ne convient pas, puisque vous demandez ensuite à pouvoir faire dessus des recherches impossibles. Il vaudrait mieux partir de sélections effectuées dans la feuille BDD Conson (sans les stupides concaténations) pour établir le vrai résultat recherché.
 

bapt0201

XLDnaute Nouveau
Bonjour Jean marie, oui en faite ce n'est pas de faire la somme mais de récupérer la cellule d'une agence (en ligne) et de l'offre en colonne (c'est un genre de matrice)


Bonjour Dranreb,
oui je pense, je suis entrain de voir pour utiliser une autre méthode, le but était d'avoir au final une base de données, les deux autres n'étant plus dans le fichier final. En faite ce qui me pose surtout problème c'est qu'initialement je voulais mettre les offres en ligne mais je me retrouvais avec plus de 1M de lignes...
 

ChTi160

XLDnaute Barbatruc
Bonsoir
je asse par là et je lis
Bonjour Jean marie, oui en faite ce n'est pas de faire la somme mais de récupérer la cellule d'une agence (en ligne) et de l'offre en colonne (c'est un genre de matrice)
quand je dis dans :
1 m3 (Big-bag) Encombrants" dois je renvoyer la Somme qui est sur la Ligne car on parle de Mini !
merci
"dois je renvoyer la Somme" il faut comprendre le Prix affiché a l'intersection de la Ligne et de la Colonne ici
"1 m3 (Big-bag) Encombrants"
les nombreux exemples que vous nous avez fourni ne m'ont pas aidé Lol
Enfin !
jean marie
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Pour ma part j'en suis toujours à penser que la recherche doit se baser sur la feuille BDD Conso. Les colonnes Zone sont plus homogène que ces assemblages hétéroclites de m³ et autres alors que tout ça est clairement organisé dans la BDD Conso. Après bien sûr il faut définir comment on fait, si possible automatiquement, pour interroger le prix de la bonne Zone …
 

Discussions similaires

Réponses
28
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…