Valeur décimale de label à label

Bonjour à tous,

mon titre n'est peut être pas très explicite et je m'en excuse, mais voici mon problème: pour un projet de stage je dois réaliser un formulaire Excel pour une entreprise afin de permettre à des clients de chiffrer une commande de meuble facilement en choisissant leurs pièces une par une.

Vous vous en doutez j'ai choisi de faire ça par VBA dans un userform (bien que je ne sois qu'un modeste amateur dans le domaine)...

J'ai donc créé une ligne pour saisir toute les données et calculer le prix correspondant puis je l'ai répétée (ainsi que le code qui va avec) autant de fois que nécessaire.

Mon problème est le suivant: tous les prix sont indiqués sous forme de label et je souhaite donner la possibilité à l'utilisateur de calculer la somme de toute les pièces avec un seul clic, jusque-là tout fonctionne, j'arrive sans problème à additionner les valeurs de chaque label dans le label "final" SAUF les décimales : la valeur entière est correcte mais systématiquement de la forme #,00 et je n'ai aucune idée de comment remédier à ça...

Voici le code de la macro concernée :

Private Sub Comm_calcfin_Click()
Dim prix1#, prix2#, prix3#, prix4#, prix5#, prix6#, prix7#, prix8#, prix9#, prixfin As Variant

Call UserForm5.calculer
Call UserForm5.calculer1
Call UserForm5.calculer2
Call UserForm5.calculer3
Call UserForm5.calculer4
Call UserForm5.calculer5
Call UserForm5.calculer6
Call UserForm5.calculer7
Call UserForm5.calculer8

prix1 = Format(val(Lab_prix.Caption), "#.00")
prix2 = Format(val(Lab_prix1.Caption), "#.00")
prix3 = Format(val(Lab_prix2.Caption), "#.00")
prix4 = Format(val(Lab_prix3.Caption), "#.00")
prix5 = Format(val(Lab_prix4.Caption), "#.00")
prix6 = Format(val(Lab_prix5.Caption), "#.00")
prix7 = Format(val(Lab_prix6.Caption), "#.00")
prix8 = Format(val(Lab_prix7.Caption), "#.00")
prix9 = Format(val(Lab_prix8.Caption), "#.00")

prixfin = Format((prix1 + prix2 + prix3 + prix4 + prix5 + prix6 + prix7 + prix8 + prix9), "#.00")
Lab_prixfin.Caption = Format(CDbl(prixfin), "#.00")
End Sub

Si vous avez une idée de la source de mon problème je vous en serai extrêmement reconnaissant !

Bonjour,

S'il est possible d'obtenir un fichier c'est plus facile pour les personnes qui passe t'aider

as-tu essayer de remplacer tes "#.00" en "#.##" ??

Pas de problème, le code concerné est celui de l'userform5 (extrêmement long à cause des répétitions du code), et les macros "calculer" se trouvent tout au bout de ce code !

J'ai tenté la modification en "#.##" mais cela me renvoie une incompatibilité de type si une des lignes est vide (et donc le prix de cette ligne de 0), et me fait disparaitre purement et simplement les décimales dans le cas contraire...

Merci à toi !

A essayer, changement de Val( par CDbl(

ça ne prenait pas en compte les décimales donc tu ne les aurait jamais eu, chez moi avec ton fichier ça fonctionne.

Private Sub Comm_calcfin_Click()
Dim prix1#, prix2#, prix3#, prix4#, prix5#, prix6#, prix7#, prix8#, prix9#, prixfin As Variant

Call UserForm5.calculer
Call UserForm5.calculer1
Call UserForm5.calculer2
Call UserForm5.calculer3
Call UserForm5.calculer4
Call UserForm5.calculer5
Call UserForm5.calculer6
Call UserForm5.calculer7
Call UserForm5.calculer8

prix1 = Format(CDbl(Lab_prix.Caption), "#.00")
prix2 = Format(CDbl(Lab_prix1.Caption), "#.00")
prix3 = Format(CDbl(Lab_prix2.Caption), "#.00")
prix4 = Format(CDbl(Lab_prix3.Caption), "#.00")
prix5 = Format(CDbl(Lab_prix4.Caption), "#.00")
prix6 = Format(CDbl(Lab_prix5.Caption), "#.00")
prix7 = Format(CDbl(Lab_prix6.Caption), "#.00")
prix8 = Format(CDbl(Lab_prix7.Caption), "#.00")
prix9 = Format(CDbl(Lab_prix8.Caption), "#.00")

prixfin = Format((prix1 + prix2 + prix3 + prix4 + prix5 + prix6 + prix7 + prix8 + prix9), "#.00")
Lab_prixfin.Caption = Format(CDbl(prixfin), "#.00")
End Sub

Simple et efficace, en effet ça fonctionne pour moi aussi merci beaucoup !

Rechercher des sujets similaires à "valeur decimale label"