Userforms dynamiques

Bonjour.

Je passe des heures à comprendre comment créer des Userforms "dynamiques" et qui utiliseraient des variables, elles-mêmes utilisées dans une Sub.

Je m'explique plus clairement.

Imaginons qu'un client me fournisse un classeur excel dans lequel se trouve tous les modèles de voitures qu'il vend (sous sa marque) et les caractéristiques de ces voitures.

Ce classeur peut être renouvelé par le client ce qui implique que le nombre de modèles de voiture change.

Ma macro permet de créer, à partir de ce fichier client, autant de nouvelles feuilles qu'il y a de modèles de voiture.

À chaque fois que je crée une feuille correspondant à un modèle de voiture, je la masque.

Quand ma boucle m'a permis de dénombrer le nb de modèles de voiture, de créer et masquer les feuilles correspondantes, je souhaite afficher un UserForm dont le caption serait "Quel modèle voulez-vous choisir ?" (On ne peut choisir qu'un modèle à la fois).

Et ce UserForm afficherait, évidemment, autant d'OptionButton qu'il y a de modèles de voitures avec en guise de Caption (de ces OptionButton), le nom du modèle de la voiture.

Je galère terriblement car je n'ai pas étudié les Userform pendant mes quelques jours de formation VBA et j'ai du mal à établir les liens bi-directionnels entre ma Sub et les Userforms (surtout les variables que je souhaite réutiliser).

J'avais commencé à créer mon Userform ainsi que les OptionButtons, mais vu que le nombre de modèles de voitures change, je ne peux pas déterminer le nombre d'OptionButton: puisque c'est variable.

Donc, j'ai fait marche arrière.

Mais comment créer à partir d'uns Sub des OptionButtons dans un UserForm ?

Dans un autre registre, lorsque je veux utiliser certaines variables de ma Sub dans les OptionButtons de mon UserForm, celles ci restent désespérément vides malgré leur déclaration en Public dans ma Sub ?

J'ai même réalisé un menu qui permettrait d'afficher une TextBox comportant autant de CheckBox qu'il y a de modèles de voitures pour que l'utilisateur puisse choisir quel(s) modèle(s) de voiture afficher.

J'ai réussi à créer ces checkBox "dynamiquement" (dépendant du nb de modèles à cet instant) mais si elles sont visuellement créées dans la TextBox, où écrire l’événement qui signifiera que l'utilisateur a coché 3 cases et qu'il faut démasquer les feuilles correspondant aux modèles de voitures ?

Je n'ai pas de Private Sub ChechBox où que ce soit !

J'avoue nager en eaux plus que troubles, voir même dans du jus de boudin.

Si vous avez des pistes car malgré mes recherches, je ne trouve pas grand chose.

Cette notion de macro, de variables, de Userform dynamique est très imortante pour moi car je ne veux pas me retrouver coincé à cause de données qui pourrait changer d'endroit ou changer tout court.

Je ne suis pas bien rompu aux règles qui dictent et définissent le "post" idéal et si jamais je "viole" une de celles-ci, n'hésitez pas à me le signifier... sans être virulent.

Je ne suis pas que bête: je comprendrai

Merci d'avance pour vos lumières.

Bonjour,

Il faut vraiment aimer se compliquer la vie !

A ta place au lieu de CheckBox, je choisirai une ListBox ou un Combo.

Sinon ça va être galère et ça sera toi le rameur...

Pour le reste une seule question à la fois avec un petit classeur démo SVP

A+

Bonjour Galopin.

Merci de t'être penché sur mon cas.

Aimer se compliquer la vie ? Non pas trop à vrai dire.

L'efficacité, la rentabilité passe par la maîtrise pour prendre de la hauteur, connaitre les tenants et les aboutissants.

Pour l'instant, je n'ai qu'une vision très étriquée du VBA et des fonctions que je peux utiliser car je suis débutant.

Si je connaissais des moyens plus pratiques et plus rapides que ceux que j'utilise, je les utiliserai direct car je ne suis pas maso.

Surtout quand je vois le temps que je passe sur internet pour trouver des solutions et pondre 3 lignes...

Quant à la Checkbox qui permet d'afficher ou masquer mes colonnes, c'est une solution plus viable qu'une ListBox en ce sens qu'elle est très visuelle et permet de cibler plus facilement les colonnes à afficher/masquer.

Il y a 76 colonnes que l'on a besoin d'afficher/masquer en permanence et ce ne sont jamais les mêmes.

Alors, c'est parti pour la première question !

1- Ma checkbox fonctionne mais pas complètement: elle fait ce que je lui demande, à savoir masquer ou afficher les colonnes, mais les coches ne reflètent pas l'état de la colonne. Comment actualiser les coches des CheckBox ?

64checkbox.xlsm (55.04 Ko)
Rechercher des sujets similaires à "userforms dynamiques"