formulaire de modification avec Combobox et texbox pre-rempli

bibbip35

XLDnaute Occasionnel
Bonsoir à tous

Je suis a la recherche d'une solution pour creer 1 formulaire de modification

J'ai aujourd'hui 1 userform me permettant d'inserer 1 ligne en remplissant des champs ( Combobox + Tex box )

Ce que je voudrais faire, c'est qu'en selectionnant la 1er combobox ; la deuxieme soit filtrée par rapport
a la 1ER ; la 3ème filtrée en focntion de la 2ème ; puis que les texbox se remplisse ensuite...

Puis que je modifie donc la textbox au choix

J'ai trouvée des exemple sur internet , mais je n'arrive pas à les adapter surement du a mon niveau débutant en VBA

Est que qq aurrait 1 solution simple? Ou est ce compliquée a mettre en oeuvre

Merci a tous

Bonne soirée

A+

Bibbip35
 

Pièces jointes

  • TEST CAPA.xlsm
    246.6 KB · Affichages: 170
  • TEST CAPA.xlsm
    246.6 KB · Affichages: 169
  • TEST CAPA.xlsm
    246.6 KB · Affichages: 170

Dranreb

XLDnaute Barbatruc
Re : formulaire de modification avec Combobox et texbox pre-rempli

Bonsoir.

J'ai une solution simple, concise et intuitive vu de l'Userform, mais elle utilise deux modules de service ordinaires: MDictionnArbo et Utilit et trois modules de classe: ComboBoxLiés, ComboBoxMembre et TableIndex. Vous trouverez tout ça dans OutIdx.
J’insiste: si la programmation que vous trouverez dans les modules de service et de classe est certes assez pointue, leur utilisation dans un Userform est tout à fait à la portée d'un débutant dans la mesure ou elle sera simple. Il conviendra juste d'avoir une bonne notion de ce qu'est exactement un objet, mais ça normalement ça doit être acquis, dans la mesure où on utilise déjà ceux mis à notre disposition par la bibliothèque Excel (Workbook, Worksheet, Range etc.) ou MSForms (Userform, ComboBox etc.)
Le seul objet nouveau dont vous aurez à vous occuper directement sera à déclarer en tête du Userform:
VB:
Dim WithEvents CL As ComboBoxLiés
CL est le nom que je prends habituellement, mais vous pouvez en choisir un autre.
 
Dernière édition:

bibbip35

XLDnaute Occasionnel
Re : formulaire de modification avec Combobox et texbox pre-rempli

Bonsoir Dranreb

Déja merci pour ta réponse, mais très serieusement je n'ai pas compris

Je débute dans le monde du VBA...

Exite t-il autre solution?

Merci en tous les cas;)
 

Dranreb

XLDnaute Barbatruc
Re : formulaire de modification avec Combobox et texbox pre-rempli

Selon moi, il n'y a pas de solution plus simple à programmer dans l'Userform pour un débutant.
Mais, qu'est-ce que vous n'avez pas compris ? Dites le moi: ce serait peut être l'occasion d"acquérir des notions.
 

bibbip35

XLDnaute Occasionnel
Re : formulaire de modification avec Combobox et texbox pre-rempli

Merci


En faite , je ne vois pas comment commencé avec cette solution

Pourriez vous m'aiguillez?

Je pense que je dois avoir louper qq chose dans vos explications...
 

Dranreb

XLDnaute Barbatruc
Re : formulaire de modification avec Combobox et texbox pre-rempli

La première étape serait soit de glisser, dans l'explorateur de projets, les modules mentionnés au poste #2 du projet OutIdx vers celui de votre classeur, soit de mettre carrément la référence OutIdx dans votre projet VBA. La deuxième, de déclarer en tête du module (derrière Option Explicit que je recommande aussi) un objet ComboBoxLiés avec évènements. Cochez aussi "Microsoft Scripting Runtime" dans la liste Références disponibles, menu Outils, Références…
Écrivez une procédure pour l'évènement Initialize de l'objet Userform. Servez vous des liste déroulantes qui surmontent la fenêtre de code pour implanter des modèles de telles procédures pour être sûr de ne pas vous tromper. Celle de gauche pour choisir l'objet concerné, celle de droite pour la procédure voulue. Ce sera exactement pareil pour le CL, si toutefois c'est bien ainsi que vous aurez appelé votre objet ComboBoxLiés. La 1ère instruction servira à lui allouer des ressources mémoire :
VB:
Set CL = New ComboBoxLiés
Vous pourrez observer un exemple de programmation à appliquer dans le module de classe qui définit ce type d'objet: ComboBoxLiés. Tous mes modules de service sont équipés de commentaires explicatifs servant d'aide et de mode d'emploi. S'il y a quelque chose que vous ne comprenez pas, signalez le moi, ça servira à les améliorer.

Remarquez, si vous n'avez pas envie de télécharger OutIdx du lien que j'avais indiqué au poste #2, je peux aussi vous équiper simplement votre classeur des modules nécessaires. Comme ça vous aurez aussi leurs versions les plus récentes.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : formulaire de modification avec Combobox et texbox pre-rempli

Bonjour.

J'ai l'exemple tout prêt sous le coude depuis hier, mais il est déjà trop avancé pour vous. Je le joindrai plus tard comme corrigé définitif, quand ce que vous aurez essayé commencera à s'en rapprocher suffisamment. Encore une fois, dites ce que vous ne comprenez pas sinon je ne sais quoi vous enseigner. Joignez ce que vous avez essayé.

P.S. Important: n'essayez surtout pas de vous programmer une gestion des choix dans les ComboBox: c'est précisément ce dont vous n'aurez plus à vous occuper du tout, si ce n'est à l'initialisation en disant simplement au CL de les ajouter l'un après l'autre à la liste de ceux qu'il devra gérer à votre place.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : formulaire de modification avec Combobox et texbox pre-rempli

Non. Comme c'est un complément développé par quelqu'un d'autre que Microsoft, l'aide n'est pas incluse à celle de VBA, elle consiste en commentaires dans les modules. Toutes les procédures à usage de service ont de tels commentaires, de même que les évènements, propriétés et méthodes dans les modules de classe.

Par exemple si, juste après avoir attribué une nouvelle instance à CL, vous envisagez de faire un CL.CouleursSympa parce que cette méthode, suggérée à la frappe, vous intrigue, vous trouvez à ce propos dans le module de classe ComboBoxLiés ceci :
Rem. —— Cette méthode attribue des BackColor différents aux ComboBox, selon qu'ils correspondent ou non à un élément de leur liste, ne sont pas
' renseignés ou l'on seulement été par programme (un seul choix possible). Dans ce dernier cas un nouveau choix unique possible peut le remplacer.
' Si les couleurs souhaitées sont omises, des nuances de vert, rouge, bleu et cyan sont assumées.
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : formulaire de modification avec Combobox et texbox pre-rempli

Bonjour

"Ce que je voudrais faire, c'est qu'en selectionnant la 1er combobox ; la deuxieme soit filtrée par rapport
a la 1ER ; la 3ème filtrée en focntion de la 2ème ; puis que les texbox se remplisse ensuite...

Puis que je modifie donc la textbox au choix"

Il faut que quelque part dans ton classeur (feuille éventuellement masquée) tu aies des listes qui te servent de rowsource pour alimenter tes combo en fonction des choix faits dans les précédentes
Par exemple : si dans la combobox 1 (disons CB01 pour faire court) tu choisis LE2 et que dans ce cas les choix possibles sont produit B ou C, tu crées une petite liste
LE2
Produit B
Produit C

que tu mets sous forme de tableau excel (que tu n'utilises pas actuellement ce qui est dommage, voir ici pourquoi
Ce lien n'existe plus

quand tu initialises ton formulaire tu ne définis la source des données que pour la premier CBO.
Tu ne définis la source des données de la CBO2 que lorsqu'un choix dans la CBO1 a été fait, autrement dit tu mets le code dans l'événement CBO1

J'ai fait une série de tutos récemment sur les formulaires, tu trouveras un exemple de la façon de faire cela ici
Ce lien n'existe plus
(regarde aussi la façon d'initialiser la CBO ici Ce lien n'existe plus)
 

Dranreb

XLDnaute Barbatruc
Re : formulaire de modification avec Combobox et texbox pre-rempli

Avec ma solution, il m'a fallu, pour que les TextBox se renseignent dès un jeu de choix suffisant dans les ComboBox, 6 instructions exécutables dans la UserForm_Initialize, 5 dans une procédure évènement CL_BingoUn, 4 dans une CL_Défait. Je parle de l'Userform FORM_AJOUTER. Les RowSource n'y sont pas renseignés, ne doivent plus l'être (entrainent permission refusée à l'exécution)
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : formulaire de modification avec Combobox et texbox pre-rempli

Je n'en doute pas Bernard.
Mais pour quelqu'un qui ne connait pas ta solution, aussi sophistiquée et puissante soit-elle, ce n'est pas très intuitif, surtout pour un débutant en VBA et comme tu le dis toi même cela revient à utiliser un outil qu'on ne comprend pas et qu'on ne maîtrise pas. Une Ferrari pour aller cueillir des pommes dans les champs en somme :)
 

Dranreb

XLDnaute Barbatruc
Re : formulaire de modification avec Combobox et texbox pre-rempli

Quoi de plus intuitif que d'indiquer simplement dans une phase d'initialisation la liste des ComboBox à gérer accompagnées des colonnes d'où prendre leurs List, et de recevoir directement dans une procédure la ou les numéros de lignes correspondant aux choix ?
 

bibbip35

XLDnaute Occasionnel
Re : formulaire de modification avec Combobox et texbox pre-rempli

Bonsoir

Desolé Dranreb , mais malgré avoir relu les forums, re regarder les classeurs , je ne comprends
vraiment pas..c'est donc 1 niveau trop évolué pour moi ; je pense

Je ne comprends pas...tans pis...

Merci en tous les cas et Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon