Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
j'ai essayé plusieurs code source pour additionner 3 textbox et ça marche le problème c'est au moment ou je change la valeur de textbox1 le résultat ne change pas
textbox4 = txt1+txt2-txt3
comment convertir ça en VBA ?
la valeur de txtbox4 doit étre modifié automatiquement si l'utilisateur change de valeur sur txt1 jsk txt3
Bonjour
Tout ce qu'on entre dans un textbox en ressort sous forme de TEXTE, même si en apparence c'est un nombre.
Il faut donc convertir (transtyper). Suivant que tes nombres sont des Integers, Longs, Double, des valeurs monétaires... tu utilises CInt, Clng, Cdbl, CCur
Textbox4=Cint(txt1)+Cint(txt2)-Cint(txt3)
attention, ce qui sort du textbox 4 sera AUSSI à convertir au moment de mettre son contenu dans la feuille.
En pièce jointe un exemple. Plutôt que d'écrire le même code autant de fois qu'il y a des textboxes numériques, j'ai utilisé un module de classe.
Le principe est simple :
• Il faut ajouter un module de classe, le renommer pour plus de compréhension (facultatif), ici TbNum,
• Définir le nom et le type des éléments de la classe (ici tbn, TextBox) dans la première ligne du module de classe avec :
Code:
Public WithEvents tbn As MSForms.TextBox
• à l'initialisation de l'UserForm définir quels contrôles seront affectés à la classe TbNum en créant un tableau des contrôles (ici ttbn).
• Dans le module de classe, définir les procédures utilisées dans la classe (ici KeyPress et Change).
À partir de là, les procédures agiront sur tous les contrôles du tableau ttbn. Cela évite d'avoir à réécrire le code pour chaque contrôle individuellement dans l'Userform1.
Même si dans cet exemple de 3 textboxes seulement le module de classe n'était pas vraiment nécessaire...
Il est important d'avoir en tête que chaque action génère un évènement. Ainsi sur les textBox dont tu dispose, il y un évènement perte du focus ou Leave (Sortie).
Donc :
Tu construit une function qui fait le total de tes TextBox. indépendamment des texte boxes eux même.
Aux évènements liés à vos textbox fait appel à cette fonction pour mettre à jour le contenu du texte box résultat.
En pièce jointe un exemple. Plutôt que d'écrire le même code autant de fois qu'il y a des textboxes numériques, j'ai utilisé un module de classe.
Le principe est simple :
• Il faut ajouter un module de classe, le renommer pour plus de compréhension (facultatif), ici TbNum,
• Définir le nom et le type des éléments de la classe (ici tbn, TextBox) dans la première ligne du module de classe avec :
Code :
Public WithEvents tbn As MSForms.TextBox
• à l'initialisation de l'UserForm définir quels contrôles seront affectés à la classe TbNum en créant un tableau des contrôles (ici ttbn).
• Dans le module de classe, définir les procédures utilisées dans la classe (ici KeyPress et Change).
À partir de là, les procédures agiront sur tous les contrôles du tableau ttbn. Cela évite d'avoir à réécrire le code pour chaque contrôle individuellement dans l'Userform1.
Même si dans cet exemple de 3 textboxes seulement le module de classe n'était pas vraiment nécessaire...
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD