C'est mon premier message sur le forum et me voilà déjà désespéré en voyant à quel point je suis incompétent pour utiliser EXCEL.
Je travaille dans une entreprise de construction et je réalise des métrés avec le logiciel AUTOCAD. Je récupère les données de mon métré sur EXCEL selon un format unique.
J'aimerais dans une autre feuille pouvoir créer des tableaux récapitulatifs qui varient selon des valeurs de listes déroulantes (sur 3 niveaux pour commencer).
Par exemple dans le feuille 2 je voudrais pouvoir créer une liste qui me permet de choisir une valeur de ma colonne CALQUE puis dans une deuxième liste une valeur de la colonne LARG qui dépend de la valeur de la première liste. Et enfin une troisième liste qui dépend des deux premières qui permet de choisir une valeur de la colonne HAUT.
Malgré les quelques sujets que j'ai lu je n'arrive pas au bout de mes peines et j'avoue être un peu désemparé ...
Re : listes déroulantes en cascade et sans doublons
tu ne dis pas avec quelle version d'excel tu travailles ?
si c'est >= 2007, transforme tout ton fichier en tableau (insertion tableau). Tu pourras alors trier comme tu veux
tu sélectionnes ton calque, puis ta largeur, puis ta hauteur
Re : listes déroulantes en cascade et sans doublons
Bonjour.
Si vous vous dessinez un Userform avec 3 ComboBox je vous mettrai la programmation permettant d'y faire ces choix soit dans cet ordre soit dans un ordre quelconque.
Re : listes déroulantes en cascade et sans doublons
avec la 2013 je l'ai mis dans les balises en fait. Je ne cherche pas à transformer mon fichier en tableau car ma liste est évolutive, elle s'auto alimente en fonction de ce que je dessine dans Autocad.
Si vous vous dessinez un Userform avec 3 ComboBox je vous mettrai la programmation permettant d'y faire ces choix soit dans cet ordre soit dans un ordre quelconque.
avec la 2013 je l'ai mis dans les balises en fait. Je ne cherche pas à transformer mon fichier en tableau car ma liste est évolutive, elle s'auto alimente en fonction de ce que je dessine dans Autocad.
Merci beaucoup pour ton aide ! c'est vraiment pas mal et ça correspond presque parfaitement à ce que je voulais.
Je t'avoue cependant avoir du mal à comprendre tout le code ! Comment faire pour ne pas avoir d'erreur si l'utilisateur clique sur le bouton OK alors que les combobox sont vides ?
Re : listes déroulantes en cascade et sans doublons
Bonjour.
Ajoutez cette instruction devant la End Sub de CL_Change :
VB:
BtnOk.Enabled = NbrLgn > 0
Il y a toutes les explications souhaitables dans le module de classe ComboBoxLiés, mais si quelque chose n'est pas clair, n'hésitez pas à me demander. Je vous explique déjà ceci :
Un module de classe est à la fois un modèle d'objet, son plan de construction et la programmation destinée à fonctionner sur les exemplaires qui en seront créés. Dans le jargon on appelle ces exemplaires des "instances" pour bien les distinguer de leur type, qui n'est autre que le nom du module de classe. Celui ci devient en effet d'office un type de donnée, de sorte qu'on peut le préciser derrière As dans une déclaration Dim. Dans la programmation extérieure au module de classe on ne voit de celui ci que les élément précisés avec le mot clé Public, mais, à la différence d'un module ordinaire, on ne peut y accéder qu'à condition de préciser devant, suivi d'un point, une instance de cet objet. Ça c'est pour que ça passe à la compilation. Pour que ça passe aussi à l'exécution, il faut en outre qu'une expression de ce type ait été affectée par un Set à votre variable d'instance. Fort heureusement, l'expression formée du mot clé New suivi du type d'objet (qui est en même temps le nom de son module de classe) forme justement une instance tout juste créée de ce type d'objet. Pour terminer, parlons de l'appellation usuelle des élements visibles de l'extérieur du module de classe, déjà vue dans l'aide de VBA à propos des objets de bibliothèques fournies : les méthodes et les propriétés. Par définition une chose déclarée Public dans un module de classe s'appelle une méthode quand il s'agit d'une Sub avec ou sans paramètre ou de toute autre sorte de procédure mais munie de paramètres (Function, Property Get ou Property Let), et s'appelle une propriété dans tous les autres cas, y compris si c'est une simple variable. Toutefois le dernier paramètre formel passé à une Property Let ne compte pas en tant que paramètre ordinaire: s'il n'y a que lui, c'est bien une propriété, au moins en écriture seule, mais également en lecture s'il y a aussi une Property Get de même nom.