Calcul en temps réel dans un userform

zapp56 -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Pour faire simple, j'ai un userform sous forme de tableau, avec une soixantaine de textbox, qui doivent donner un résultat dans la dernière colonne.

Je voudrais que ces résultats se calculent en temps réel, c'est à dire exactement comme si je faisais ce tableau sous excel avec en dernière cellule de ligne (=somme A1:G1). Chaque fois que je remplis une textbox et passe à une autre, le calcul se fait.

Y-a-t-il une autre solution que d'éditer chaque textbox_click dans le code ? (64 textbox à éditer...)

Merci d'avance.
A voir également:

2 réponses

ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Bonsoir Zapp, bonsoir le forum,\

Il te faut passer par un module de classe... Tu crées une classe pour tes TextBoxes numériques. À l'initialisation de l'Userform un tableau récupère les contrôles qui vont faire partie de la classe. Au changement dans n'importe quelle textbox de la classe le total s'affiche.
J'ai longtemps galéré avec les modules de classe alors je t'envoie un petit fichier Word que je ressors chaque fois que je dois en créer un et un petit exemple Excel :

https://www.cjoint.com/c/ECdwFooTNUy

Il te faudra, bien sûr, l'adapter à ton cas. J'ai commenté le code..
1
zapp56
 
Ok je vais consulter ça. J'ai commencé à m'habituer au VBA et aux userforms mais je débute encore.
J'ai commencé la programmation sur Basic de calculatrice et mes développements VB sont pas toujours très... académiques. J'ai réussi à me séparer de la programmation spaghetti mais bon.

Je vais consulter tout ça. Merci à toi.
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

Voir ceci:

https://silkyroad.developpez.com/VBA/ControlesUserForm/#LI-B

Encore un autre exemple pour boucler sur les TextBox: Transférer le contenu de 10 TextBox dans la plage de cellules A1:A10

Private Sub CommandButton1_Click()
    Dim i As Integer
    
    For i = 1 To 10
    Cells(i, 1) = Me.Controls("TextBox" & i)
    Next i
End Sub


0