Somme de décimales dans un userform

  • Initiateur de la discussion Initiateur de la discussion benadry
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

benadry

XLDnaute Occasionnel
Rebonjour le forum,

C'est encore moi !

Je continue dans mon projet et j'ai maintenant un problème avec une somme de décimales dans un userform.

Le but est de faire, dans un textbox, la somme d'autres textboxes.

Ca, j'ai réussi sans problème.

Je suis allé voir sur d'autres forums pour que la "virgule" soit comprise comme un "point" par la macro. D'ailleurs, quand je tape un "point", il remplace par une "virgule".

Mais, dans la cellule qui doit recevoir la somme, je n'arrive pas avec de décimales !

Quelqu'un aurait-il une idée ?

Encore un grand merci d'avance.

Cordialement.
 

Pièces jointes

Re : Somme de décimales dans un userform

Bonjour.

Normalement Val ne convertit en nombre que des String où le séparateur décimal est un point. Pour interpréter en nombre un texte avec le séparateur régional, c'est CDbl, et c'est aussi ce qu'il convient de prendre pour envoyer dans une cellule le nombre représenté par le Text d'un TextBox.
 
Re : Somme de décimales dans un userform

Bonjour Dranreb,


Merci pour la réponse.

Je suis loin de maîtriser toutes les subtilités des macros.


J'ai essayé la solution suivante :

Code:
Private Sub Textbox18_Afterupdate()

TextBox15.Value = CDbl(TextBox18.Value) + CDbl(TextBox19.Value) + CDbl(TextBox20.Value) + CDbl(TextBox21.Value) + CDbl(TextBox22.Value) + CDbl(TextBox23.Value) + CDbl(TextBox24.Value) + CDbl(TextBox25.Value) + CDbl(TextBox26.Value) + CDbl(TextBox27.Value) + CDbl(TextBox28.Value) + CDbl(TextBox29.Value)

End Sub

et j'ai une "incompatibilité de type" !

Qu'est-ce que j'ai raté ?

Merci d'avance.

Cordialement.
 
Re : Somme de décimales dans un userform

Peut être un des textbox est-il vide ?
Faites donc une procédure à part pour calculer ça au lieu de tout répéter dans chaque _AfterUpdate.
Genre :
VB:
Private Sub RecalculTotal()
Dim S As Double, J As Long
On Error Resume Next
For J = 18 To 29: S = S + CDbl(Me("TextBox" & J).Text): Next J
TextBox15.Text = S
End Sub
 
Re : Somme de décimales dans un userform

Bonjour le fil, bonjour le forum,

Le problème est que la conversion en double (CDBl)d'une textbox vide plante... Il faut d'abord vérifier que la textbox ne soit pas vide avant de convertir. Essaie comme ça (non testé) :

Code:
Private Sub Textbox18_Afterupdate()
Dim CTRL As Control
Dim T As Double
Dim V As Double

For I = 18 To 29
    Set CTRL = Me.Controls("TextBox" & I)
    If CTRL.Value = "" Then V = 0 Else V = CDbl(CTRL.Value)
    T = T + V
Next I
TextBox15.Value = T
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
188
Réponses
14
Affichages
670
Réponses
12
Affichages
776
Réponses
10
Affichages
391
Retour