module de classe et textbox
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:
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:
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