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 :
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 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
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...
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
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
Partager