XL 2013 Calcul en boucle dans un userforme

youguybass

XLDnaute Junior
J'ai un pb avec ce sous programme qui me permettrai de faire une somme de plusieurs multiplications en boucle a partir de textbox 200 à 220

J'ai réalisé cette boucle mais elle ne fonctionne pas :

J'ai comme message " incompatibilité de type"

Sub CalculTotalFI()
D = 0
For E = 200 To 220 Step 2
D = CDbl(Controls("TextBox" & E)) * CDbl(Controls("TextBox" & E + 1)) + D

Next
TxtTotalMaintenance.Value = D

End Sub

1641484143821.png

Donc Help
 

JM27

XLDnaute Barbatruc
Bonsoir
Comme prévu lorsque tu lances la macro de Calcul , certaines text box sont vides
Cette macro faisant le calcul sur toutes les textbox , donc ca plante
Je me suis permis quelques modifs
Gestion du cas ou l'on supprime une valeur
 

Pièces jointes

  • Calcul par boucles.xlsm
    17.6 KB · Affichages: 3
Dernière édition:

youguybass

XLDnaute Junior
Bonsoir
Comme prévu lorsque tu lances la macro de Calcul , certaines text box sont vides
Cette macro faisant le calcul sur toutes les textbox , donc ca plante
Je me suis permis quelques modifs
Gestion du cas ou l'on supprime une valeur
VB:
D = 0
For E = 200 To 220 Step 2
D = (Val(Me.Controls("TextBox" & E)) * Val(Me.Controls("TextBox" & E + 1))) + D

Next
TxtTotalMaintenance.Value = D

J'ai réussi avec "Val et des parenthèses bien positionnées
 

youguybass

XLDnaute Junior

JM27

XLDnaute Barbatruc
Bonsoir
regardes bien , la partie décimale disparait
Val renvoie la partie entière
VB:
D = (Val(Me.Controls("TextBox" & E)) * Val(Me.Controls("TextBox" & E + 1))) + D

Est tu bien sur que le E , c'est pas plutôt un D qu'il faut
Et que cela donne t'il lorsque tu supprimes une valeur?
 

youguybass

XLDnaute Junior
Bonsoir
regardes bien , la partie décimale disparait
Val renvoie la partie entière
VB:
D = (Val(Me.Controls("TextBox" & E)) * Val(Me.Controls("TextBox" & E + 1))) + D

Est tu bien sur que le E , c'est pas plutôt un D qu'il faut
Et que cela donne t'il lorsque tu supprimes une valeur?
Effectivement la partie décimale disparait
quelle serait la combine pour que les chiffres après la virgule soient pris en compte
 

Discussions similaires