[RESOLU par mapomme.JOB75.Pascal]arrondir à la dizaine inferieur

MADAGASCAR

XLDnaute Occasionnel
Bonjour Forum
Bonjour à tous et à toutes
S'il vous plaît ..si vous pouvez m'aider à résoudre ce problème
Dans mon UserForm1 j'ai 6 TextBox
TextBox6.Text = TextBox1.Text - (TextBox2.Text + TextBox3.Text + TextBox4.Text + TextBox5.Text)
Par exemple, comme l'opération dans l'image ci-dessous:
87588,05 = 97816,10 - (05.50 + 1146,60 + 300 + 8775,95)
Je veux que le résultat dans TextBox6 sera toujours arrondi à la dizaine inferieur
dans cet exemple (87588,05) .. apparaît (87580,00)
Je tente avec le code dans mon USF mais j'ai pas completement réussi
Merci beaucoup d'avance pour l'aide
Cordialement
MADA BLACK
 

Fichiers joints

Dernière édition:

Victor21

XLDnaute Barbatruc
Supporter XLD
Re : arrondir à la dizaine inferieur

Bonjour, Madagascar.

Pour arrondir à la dizaine inférieure, multipliez par 10 la partie entière de votre valeur divisée par 10.
 

MADAGASCAR

XLDnaute Occasionnel
Re : arrondir à la dizaine inferieur

Bonjour Victor21
Merci beaucoup pour l'intention d'aide et pour votre idee
J'ai essayé de faire comme vous m'avez dites mais regardez svp ce qu'il me donne
Private Sub TextBox5_Change()
Me.TextBox6.Text = ((Val(Replace(Me.TextBox1, ",", ".")) - (Val(Replace(Me.TextBox2, ",", ".")) + Val(Replace(Me.TextBox3, ",", ".")) + Val(Replace(Me.TextBox4, ",", ".")) + Val(Replace(Me.TextBox5, ",", ".")))) * 10) / 10
End Sub
Cordialement
MADA BLACK
 

Fichiers joints

Victor21

XLDnaute Barbatruc
Supporter XLD
Re : arrondir à la dizaine inferieur

Re,

C'est la partie entière de la valeur divisée par 10 qu'il faut multiplier par 10 :
87 588,05/10 = 8 758,805
La partie entière de 8 758,805 est 8 758
Et 8.758 * 10 = 87 580.

Peut-être (je ne suis pas un spécialiste de VBA, et n'ai pas testé) :
Me.TextBox6.Text = int ((Val(Replace(Me.TextBox1, ",", ".")) - (Val(Replace(Me.TextBox2, ",", ".")) + Val(Replace(Me.TextBox3, ",", ".")) + Val(Replace(Me.TextBox4, ",", ".")) + Val(Replace(Me.TextBox5, ",", ".")))) / 10) )*10
PS : Y'a beaucoup de parenthèses, non ?
 
Dernière édition:

MADAGASCAR

XLDnaute Occasionnel
Re : arrondir à la dizaine inferieur

Merci Patrick pour l'aide
J'ai obtenue une erreur de syntax .. comme l'indique cette image ..je ne sais où est l'erreur
Sincerement
MADA BLACK
 

Fichiers joints

job75

XLDnaute Barbatruc
Re : arrondir à la dizaine inferieur

Bonsoir MADAGASCAR, Patrick,

Vous aimez bien les parenthèses et les Meuuhh qui ne servent à rien hein MADA ?

Code:
Private Sub TextBox2_Change()
TextBox6 = Val(Replace(TextBox1, ",", ".")) - Val(Replace(TextBox2, ",", ".")) - Val(Replace(TextBox3, ",", ".")) - Val(Replace(TextBox4, ",", ".")) - Val(Replace(TextBox5, ",", "."))
TextBox6 = Application.RoundDown(CDbl(TextBox6), -1)
End Sub
Bonne nuit.
 

Victor21

XLDnaute Barbatruc
Supporter XLD
Re : arrondir à la dizaine inferieur

Re,

En supprimant les () superflus, (Mon Post scriptum du #4) ça donne quoi ?
Me.TextBox6 = Int(Val(Replace(Me.TextBox1, ",", ".")) - (Val(Replace(Me.TextBox2, ",", ".")) + Val(Replace(Me.TextBox3, ",", ".")) + Val(Replace(Me.TextBox4, ",", ".")) + Val(Replace(Me.TextBox5, ",", "."))) / 10) * 10
Nouveau PS : Il n'est pas nécessaire de cliquer sur "J'aime ce post" à chaque réponse : trop d'amour tue l'amour:)
 

MADAGASCAR

XLDnaute Occasionnel
Re : arrondir à la dizaine inferieur

Bonjour JOB75
Tres ravi de vous voir dans ce sujet
Merci beaucoup pour l'aide
Je ne sais pas pourquoi j'ai utilisé le meme exemple avec ces chiffres mais le resultat obtenu das TextBox6 c'etait ( 978100 )
Normalement se sera bien ( 87580 )
Cordialement
MADA BLACK
 

MADAGASCAR

XLDnaute Occasionnel
Re : arrondir à la dizaine inferieur

Bonjour Patrick
Je vais noter bien votre remarque ..mais l'amour tue l'amour pour les infideles ..
Aussi cher Patrick le resultat obtenue est ( 967930 )
Je ne sais pas où est le probleme avec ce malheureux fichier
Cordialement
MADA BLACK
 

Victor21

XLDnaute Barbatruc
Supporter XLD
Re : arrondir à la dizaine inferieur

Re, Mada

Vous savez faire le calcul par formule et, manifestement vous maîtrisez le VBA autant que moi... :rolleyes:

La sagesse ne voudrait-elle pas que vous utilisiez les outils que vous connaissez plutôt que de dépendre à chaque ligne du bon-vouloir et du bon-savoir des "malheureux" intervenants de ce forum ?
Et plutôt que de perdre du temps à attendre les réponses l'employer, si vous en avez le goût, à vous perfectionner ?

PS : Bonsoir, Gérard :)
 

MADAGASCAR

XLDnaute Occasionnel
Re : arrondir à la dizaine inferieur

Croyez moi Patrick je ne reste toujours pas les bras croisés ..
Mais parfois je change plusieurs codes et je fais plusieurs trucs mais finalement je n'arrive pas a la bonne reponse que je souhaite .. ici je poste mon sujet dans le forum..
Dans tous les cas je respecte votre opinion
Cordialement
MADA BLACK
 

grisan29

XLDnaute Accro
Re : arrondir à la dizaine inferieur

bonjour Mada,victor,job75 et le forum

essai ceci pour voir
Code:
TextBox6 = Format(TextBox6, "0")
normalement les textbox ne doivent contenir que du texte
pascal
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : arrondir à la dizaine inferieur

Bonjour grisan29, le fil, le forum,

Le problème posé c'est arrondir à la dizaine inferieure :rolleyes:

J'en profite pour compléter les autres macros de l'USF :

Code:
Private Sub TextBox3_Change()
TextBox2_Change
End Sub
Private Sub TextBox4_Change()
TextBox2_Change
End Sub
Private Sub TextBox5_Change()
TextBox2_Change
End Sub
Bonne journée.
 

MADAGASCAR

XLDnaute Occasionnel
Re : arrondir à la dizaine inferieur

Bonjour Pascal
Merci beaucoup pour l'aide
Mais malheureusement aussi .. j'ai pas obtenu la bon resultat
J'ai pas connu meme pas où je vais poser cette formule
Dans tous les cas merci beaucoup
Cordialement
MADA BLACK
 

MADAGASCAR

XLDnaute Occasionnel
Re : arrondir à la dizaine inferieur

Bonjour JOB75
Merci beaucoup pour vos codes et votre aide
J'ai essayé de mettre vos codes ensemble comme ceci :
Private Sub TextBox3_Change()
TextBox2_Change
End Sub
Private Sub TextBox4_Change()
TextBox2_Change
End Sub
Private Sub TextBox5_Change()
TextBox2_Change
End Sub
Private Sub TextBox2_Change()
TextBox6 = Val(Replace(TextBox1, ",", ".")) - Val(Replace(TextBox2, ",", ".")) - Val(Replace(TextBox3, ",", ".")) - Val(Replace(TextBox4, ",", ".")) - Val(Replace(TextBox5, ",", "."))
TextBox6 = Application.RoundDown(CDbl(TextBox6), -1)
End Sub
Mais finalement par mal chance j'ai obtenu ce resultat pas arrondi dans TextBox6 ..
Tres cordialement
MADA BLACK
 

Fichiers joints

grisan29

XLDnaute Accro
Re : arrondir à la dizaine inferieur

bonjour Madagascar

tu peux la mettre dans l’initialisation de l'userform, en fait ce code ne mets rien après la virgule
si tu ne veux que 2 chiffres après virgule tu mets "0.00"

dans le code que tu as mis dans ton post de départ si tu mettait partout des virgules le calcul se ferait mieux
Code:
87588,05 = 97816,10 - (05.50 + 1146,60 + 300 + 8775,95)
05.50 =<05,50>

Pascal
 
Dernière édition:

grisan29

XLDnaute Accro
Re : arrondir à la dizaine inferieur

bonjour Mada

on s'est croisé ma Pomme j'ai regardé ton classeur et recopier exactement ce que tu as mis et voila le résultat que j'ai
Pascal
 

Fichiers joints

Dernière édition:

grisan29

XLDnaute Accro
Re : arrondir à la dizaine inferieur

bonjour Mapomme
il n'y a aucun problème je croyais répondre a madagascar car je n'avais pas remarqué que c'était toi qui avais mis le fichier
Pascal
 

Discussions similaires


Haut Bas