Récupérer les chiffres après la virgule

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 !

Etienne2323

XLDnaute Impliqué
Bonjour à tous,
une petite question VBA pour vous ce soir. J'aimerais simplement savoir comment tester à l'aide d'une condition si le nombre compris dans la cellule A1 est un nombre entier ou un nombre avec décimaux (je crois qu'on dit décimaux mais je ne suis pas certain 😉 ). Si c'est un nombre à virgule, alors j'aimerais récupérer dans une variable la valeur des décimaux uniquement.

Une idée du code ?

Merci à vous !

Étienne
 
Re : Récupérer les chiffres après la virgule

Bonsoir à vous,
En testant ma macro j'ai eu des PB que j'ai du mal à comprendre!!!
Si je mets en A1 .......5.02
x = [A1]
y = Int([A1])
MsgBox (x - y)
la réponse du code est 1.999999999994E
Alors que si je mets
x = [A1] * 1000000
y = Int([A1]) * 1000000
MsgBox (x - y) / 1000000
j'ai bien mon ......0,2
Je ne comprends pas le pourquoi de la chose et souhaiterais bien comprendre le truc.
 
Re : Récupérer les chiffres après la virgule

Bonsoir Etienne2323, chris (bises), youky(BJ),

Il n'y a pas de truc sauf qu'Excel et son VBA (entre autres) ne travaillent pas sur tes valeurs.

Elles sont interprétées en Binaire pour procéder aux calculs et ensuite restituées en valeurs que nous sommes capables de lire couramment. Il traîne donc des résidus en plus ou en moins dans les dernières décimales.

Bonne soirée.

Jean-Pierre
 
Re : Récupérer les chiffres après la virgule

Bonsoir,

Tu peux aussi tenter un truc du genre:

Private Sub CommandButton1_Click()
Dim VIRGULE As Variant
VIRGULE = ","

Worksheets("Feuil1").Cells(3, 2) = Left(Worksheets("Feuil1").Cells(3, 1), _
(InStrRev(Worksheets("Feuil1").Cells(3, 1), VIRGULE, -1, vbTextCompare)) - 1)

Worksheets("Feuil1").Cells(3, 3) = Mid(Worksheets("Feuil1").Cells(3, 1), _
(InStrRev(Worksheets("Feuil1").Cells(3, 1), VIRGULE, -1, vbTextCompare) + 1), 5)

End Sub

Voir Classeur joint

Bonne soirée

YANN-56
 

Pièces jointes

Re : Récupérer les chiffres après la virgule

Salut à vous tous, le forum,
peut-être une piste de solution pour Youky(BJ). Plutôt que de faire des multiplications et des divisions pour arriver à ta réponse, peut être que la fonction "Round(" . Voici l'exemple.

Code:
Option Explicit
Sub test()

Dim Nombre As Single, Deux_Decimale As Single
Dim Entier As Long

Nombre = Cells(1, 1).Value
Entier = Int(Nombre)
Deux_Decimale = Round((Nombre - Entier), 2)

End Sub

Cordialement,

Étienne
 
- 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

Retour