Controler un changement dans plusieurs textbox sans avoir à écrire un sub à chaq

jackoneill2000 Messages postés 3 Date d'inscription samedi 8 janvier 2011 Statut Membre Dernière intervention 12 janvier 2011 - 11 janv. 2011 à 01:53
jackoneill2000 Messages postés 3 Date d'inscription samedi 8 janvier 2011 Statut Membre Dernière intervention 12 janvier 2011 - 12 janv. 2011 à 16:45
Bonjours tout le monde!
Je débute en VBA.
Mon problème :

J'ai un userform avec 289 textbox, et un textbox résultat.
je voudrai que mon textbox résultat se mette à jour dès qu'un changement et effectué dans les autres.
La technique un peu barbare que je connais serai de créer un module à chaque textbox du style :

Private sub Textbox1_change()

Calcul_Total

End sub

Ma question est n'existe t'il pas un moyen de créer un module du style:


Private sub Textbox(i)change()

Ou un autre moyen pour détecter qu'un changement s'est opéré dans un textbox et que le résultat doit être mis à jour.

Merci à tout ce qui seront me répondre.

4 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
11 janv. 2011 à 09:49
Salut,

via une classe que tu charges à l'ouverture de ta form.

A+
0
jackoneill2000 Messages postés 3 Date d'inscription samedi 8 janvier 2011 Statut Membre Dernière intervention 12 janvier 2011
12 janv. 2011 à 00:48
Merci de ta réponse

Mais cela ne m'aide pas beaucoup.
J'avoue avec honte que je ne sais pas encore créer de classe, ni y faire appel.

Pourrais tu juste me dire rapidement comment je dois faire:

-Pour déclarer mes textbox dans une classe.
- puis dans ma feuille faire appel à la classe.

d'avance merci de ta réponse.
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
12 janv. 2011 à 09:07
Salut,

on va essayer d'y aller par étape:

pour commencer il faut ajouter à ton projet 2
modules de classe.

-le premier que tu renommes en "ClassePourTextBox"

-le deuxieme que tu renommes en "TextBoxEvents"


Au premier module de classe tu ajoutes cette première partie de code :

Option Explicit

Dim AllTextbox() As TextBoxEvents, NbTextbox As Integer


Tu remarqueras que si au lieu de faire un copier/coller de ces 2 lignes tu écris : Dim AllTextbox() As
à partir de la "TextBoxEvents", notre second module de classe, apparaît maintenant dans la liste des objets disponibles.

Une fois cette etape effectuée, donne nous en retour, le nom de la form qui contient toute tes textbox.

A+
0
jackoneill2000 Messages postés 3 Date d'inscription samedi 8 janvier 2011 Statut Membre Dernière intervention 12 janvier 2011
12 janv. 2011 à 16:45
Merci beaucoup pour toute cette aide en fait j'ai fini par trouver comment faire.
Je te posterai mon code final, comme ça tu pourras me dire ce que tu en penses.

Encore merci pour ta solidarité.

C'est en forgeant que l'on deviens forgeron ("mon grand-père").
0
Rejoignez-nous