bonjour à tous,

voilà, j'ai 3 textboxes avec chacune une valeur et un 4eme censé faire le total des 3 autres "à la volée".

Le probleme est : CA MARCHE PAS !!!

voici mon code :

Mon module de classe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Option Explicit
Public MesTextBox As Collection
Public MesTextBoxTOTO As Collection
 
Public WithEvents totalTB As msforms.TextBox
 
Private Sub Class_Initialize()
    Set MesTextBox = New Collection
    Set MesTextBoxTOTO = New Collection
End Sub
 
Private Sub totalTB_change()
 
    MsgBox "On est entré"
 
End Sub
et le code de mon formulaire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
Option Explicit
Dim MaClasse As Mon_mod_classe
Dim MesClasses As Collection
 
Private Sub userform_initialize()
 
    Dim val1 As Long, val2 As Long, val3 As Long
    Dim Nat1 As msforms.TextBox
    Dim Nat2 As msforms.TextBox
    Dim Nat3 As msforms.TextBox
    Dim totalNat As msforms.TextBox
 
    Set MesClasses = New Collection
    Set MaClasse = New Mon_mod_classe
    MesClasses.Add MaClasse
 
    Set Nat1 = mon_formulaire.Controls.Add("forms.textbox.1")
    With Nat1
        .Top = 40
        .Left = 10
        .Value = "25"
    End With
    Set MaClasse.totalTB = Nat1
 
    Set Nat2 = mon_formulaire.Controls.Add("forms.textbox.1")
    With Nat2
        .Top = 40
        .Left = 110
        .Value = "50"
    End With
    'Set MaClasse.totalTB = Nat2
 
    Set Nat3 = mon_formulaire.Controls.Add("forms.textbox.1")
    With Nat3
        .Top = 40
        .Left = 210
        .Value = "25"
    End With
    'Set MaClasse.totalTB = Nat3
 
    val1 = CInt(Nat1.Value)
    val2 = CInt(Nat2.Value)
    val3 = CInt(Nat3.Value)
 
    Set totalNat = mon_formulaire.Controls.Add("forms.textbox.1")
    With totalNat
        .Top = 20
        .Left = 10
        .Value = val1 + val2 + val3
    End With
    Set MaClasse.MesTextBoxTOTO = totalNat
 
    'Set MaClasse.totalTB = totalNat
 
End Sub
vous remarquerez la mise en commentaire de certaines lignes car sans ça, ça marche pas : 1 "instance" dans la classe MaClasse.totalTB et ça marche, a la seconde instance créée, ça merdouille...

Ensuite, il me faudrait de l'aide pour ecrire le code dans totalTB_change() parce que je ne sais pas du tout comment faire... Je voudrais que, quand l'un des 3 textboxes change de valeur, le texbox total re-calcule ce total...

Merci d'avance pour votre aide