Bonjour,

Je voudrais obtenir un total de mes textbox nommés [Montant1] à [Montant12]
Le signe positif et négatif du montant est stocké dans un textbox nommé [sens1] à [sens12]

J'ai tenté plusieurs approches pour aboutir un compteur dans un module de classe.
J'arrive à obtenir l'addition de tous mes Montant(x), mais je n'arrive pas à opérer en fonction du sens(x).




Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
Dim sens1 As String, sens2, sens3, sens4, sens5, sens6, sens7, sens8, sens9, sens10, sens11, sens12
Dim Txt(1 To 12) As New ClasseSaisie
 
 
Private Sub UserForm_Initialize()
 
 For b = 1 To 12
 Set Txt(b).GrSaisie = Me("Montant" & b)
 
 Next b
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
 
Public WithEvents GrSaisie As MSForms.TextBox
Private Sub GrSaisie_change()
  For I = 1 To 12
 
    If IsNumeric(UsfLignes("Montant" & I)) Then
      T = T + CDbl(UsfLignes("Montant" & I))
        End If
           Next I
 
UsfLignes.TextCumulMOntant = T    'Textbox recevant l'affichage du cumul
 
End Sub

Ce qu'il faudrait c'est passer la variable sens(x) dans le module de classe,
puis dans le module de classe faire un test, j'ai pensé donc

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Public WithEvents GrSaisie As MSForms.TextBox
Private Sub GrSaisie_change()
  For I = 1 To 12
 
       IF Sens(T)="+" then 
           T = T + CDbl(UsfLignes("Montant" & I))
              Else
                 T = T + (CDbl(UsfLignes("Montant" & I)) * -1)
                     End IF
 
UsfLignes.TextCumulMOntant = T    'Textbox recevant l'affichage du cumul
 
End Sub
Merci d'avance de votre coup de main

Christian