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

bibbip35

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

Bonjour

Je vais surrement poser une question bête ; mais ne peut pas t-on declarer le tableau en plusieurs partie pour VLGN
C.A.D PlgTablo = colonne 1 + Colonne 6à 7......
CL.PlgTablo.Rows(LCou).Resize(, 92).Value = VLgn()

C'est une idée....

Merci
 

Dranreb

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

Bonjour.
Non. La plage ne définissant que certaines colonnes serait une plage multi-zones (sa propriété Areas.Count serait > 1) et il n'existe pas de représentation interne de la propriété Value d'une telle plage. Mais chaque membre de la collection Areas est un Range représentant une plage de cellules contiguës. Pourquoi ne voulez vous pas mettre toutes les formules derrière les constantes ?
 

bibbip35

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

Bonjour et Merci

Je comprends , ce n'es pas jouable du coup...

Par contre non, je ne peux pas mettre les formules derrière...( Ca focntionnerai, j'en ai bien consience)
Mais les formules calculé donne des informations essentiel a l'utilisateur et doivent être placé a cette endroit pour
une meilleur lisibilité helas...De plus, j'ai enorment de msg box liées a ces formules...

Vous ne voyez pas d'autres solutions?

Cdlt

Bibbip35
 

Dranreb

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

Rien d'à la fois simple et performant.
Peut être réinstaller les FormulaR1C1 dans les colonnes appropriées de CL.PlgTablo avant le déchargement de l'Userform (évènement QueryClose)
Mais de toute façon ça ne sert à rien d'aller jusqu'à Resize(, 92), seulement jusqu'à la dernière colonne correspondant à un contrôle de l'Userform.
 
Dernière édition:

bibbip35

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

Il faut que je re-declarre mes formules alors? C'est bien cela...

Par exemple, sur la ligne 16 et colonne B
=RECHERCHEH(A16;'TRG & Tps dispo.'!$C$11:$O$14;4;FAUX)

Comment dois je procéder?

Il faut que je fasse comme suit peut être
VLgn(1, 2) = RECHERCHEH(A16;'TRG & Tps dispo.'!$C$11:$O$14;4;FAUX)

Merci
 

Dranreb

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

Ça c'est de la notation A1 locale, pas de la notation R1C1 (native)
Non, mais je vois l'exemple, en passant, elle bouge vraiment tant que ça cette plage 'TRG & Tps dispo.'!$C$11:$O$14, (qui était d'ailleurs #REF! dans les classeurs joints) ? Au point que vous ne pourriez pas mettre les infos dans un tout petit Dictionary et les figer selon la valeur de A16 prise lors de la création de la ligne ?
Sinon je suggérai plutôt de remettre les formules sur les colonnes entières lors de la fermeture du Userform.
Donc avec cet exemple (Beurk RECHERCHEH !) ça donnerait plutôt quelque chose comme ça :
VB:
CL.PlgTablo.Columns("B").FormulaR1C1 = "=HLOOKUP(RC1,'TRG & Tps dispo.'!R11C3:R14C15,4,FALSE)"
Remaque: Vous auriez intérêt à mettre un nom à cette plage, et à utiliser ce nom plutôt que sa référence.
"RC1", c'est de la notation R1C1, ça veut dire ligne portant la formule et colonne 1. L'équivalent en notation A1, mais seulement pour une formule de la ligne 16 et plus pour toutes les lignes, serait "$A16".
 
Dernière édition:

bibbip35

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

Merci ca fonctionne en effet; par contre je ne comprends la correspondance R11C3:R14C15 vs !$C$11:$O$14

Car j'ai plusieurs formules differentes; existe t-il une table de correspondance sur le net, pour m'en sortir?

Voici les differentes formules que je dois traiter
='TRG & Tps dispo.'!$D$16
=RECHERCHEH(A7;'TRG & Tps dispo.'!$C$11:$O$14;2;FAUX) ==> "=HLOOKUP(RC1,'TRG & Tps dispo.'!R11C3:R14C15,2,FALSE)"
=((3600*(H7*I7))/$V$5)
=SI(A7="LE1";V7;SI(A7="LE2";W7;SI(A7="LE3";X7;SI(A7="LE4";Y7;"0"))))
=Z7-AA7
=AB7/Z7
=SIERREUR((AA7/H7);"0")
=SIERREUR(((3600/(Z7/H7))*D7);"0")
=RECHERCHEV(G7;'Besoin par produit'!$1:$1048576;4;FAUX)
etc...

Enfin je veux pas vous embeter a traduire toutes les formules...c'est pour cela que je me demandais si il existais pas 1 endroit pour les traduire

MERCI
 

Dranreb

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

Le plus simple serait de demander l'enregistrement d'une nouvelle macro, puis, pendant que ça enregistre, revalider toutes les formules existantes qu'il vous faut en cliquant dans la barre de formule puis Entrée. Vous n'aurez plus qu'à copier les FormulaR1C1 de la macro engendrée. Et, un conseil, profitez donc pour mettre des "$" devant les références de colonnes.
R11C3:R14C15: la plage absolue allant de Cells(11, 3) à Cells(14, 15), soit Cells(11, "C") à Cells(14, "O"), soit $C$11:$O$14.
 

bibbip35

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

Bonjour

Par contre, petite question concernant la copie des formules lors de la fermeture de l'userform
Est-il possible d'appliquer cela qu'a ligne courante?
Car j'ai enormement de formules = Tps d'excution long

Merci

Bibbip35
 

Dranreb

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

Bonjour.
Mettez Application.Calculation = xlCalculationManual avant de remettre les formules et = xlCalculationAutomatic après.
Normalement ça ne devrait alors pas être plus long de remettre les formules sur les colonnes complètes de CL.PlgTablo que sur une seule ligne. S'il y a une Worksheet_Change dans le module de la feuille il faut aussi Application.EnableEvents = False.
Qu'est-ce que vous appelez la ligne courante lors de la fermeture ? Plusieurs lignes peuvent évidemment avoir été modifiées ou créées quand on le décharge, vous ne le déchargez pas après chaque modification j'espère, ce qui obligerait à refaire toute l'initialisation à chaque fois ?
 

bibbip35

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

Bonjour

Je vais essayer merci sinon la ligne
Courante c est la ligne que je modifie
L userform ne modifie qu une ligne a la fois

Sinon ca decharge a chaque fermeture et chaque Modif

Merci
 

Dranreb

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

Pas bon ça. Pas panacher les choses. Ces formules doivent être mises soit sur CL.PlgTablo.Columns(x) dans la Userform_QueryClose, soit sur CL.PlgTablo.Cells(LCou, x) mais impérativement à la fin de BtnValider_Click, alors. Mais dans ce cas c'est plus long à chacune des validations effectuées.
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 319
Membres
103 177
dernier inscrit
grizly