VB6 Fonction Instr et Right/Left

cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 9 avril 2008 à 21:03
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 - 22 sept. 2023 à 12:32
Salut... je suis en VB6


Je cherche un moyen de prendre les décimal d'un nombre et de les mettres en entier
Exemple
Si j'ai 100,22
Je veux que ,22 devienne 22
Je dois faire cela en utilisant la foinctione Right/Left et instr
je ne peux pas faire ,22 * 100 le résultat n'est pas bon pour ce que je veux en faire
Exemple si j'ai 100,2 je veux avoir comme résultat 2 et non 20 (si je fais ,2 * 100)


Bref quelle est la meilleur solution avec les fonctions instr et Right/Left


J'essais plein de truc mais je n'y arrive pas...


Merci de votre aide

10 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
9 avril 2008 à 21:36
Salut,

Sub valeur()
    Dim Nombre As String, Decimale As Long
    Nombre = "100,22"
    Decimale = CLng(Right(q, Len(q) - InStr(1, q, ",", 1)))
    MsgBox Decimale
End Sub

Attention cela ne fonctionne que si le nombre est une chaine

A+
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
9 avril 2008 à 21:38
oupps !

j'ai valider par erreur avant d'avoir fini

Sub valeur()
    Dim Nombre As String, Decimale As Long
    Nombre = "100,22"
    Decimale = CLng(Right(Nombre, Len(Nombre) - InStr(1, Nombre, ",", 1)))
    MsgBox Decimale
End Sub

A+
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 avril 2008 à 22:16
Bonjour,

puisque  le séparateur des décimales est la virgule, il suffit  de

Val(StrReverse(nombre))
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 avril 2008 à 22:18
Avec bien évidemment la précaution suivante :

Si Nombre n'est pas un entier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lunikmarty Messages postés 55 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 17 avril 2008
9 avril 2008 à 23:04
Si tu tiens vraiment à utiliser Right,Left et Instr :

    Dim Nombre, Decimale, Entier As String
   
    Nombre = "100,22"
   
    Decimale = Right(Nombre, Len(Nombre) - InStr(1, Nombre, ",", 1))
    Entier = Left(Nombre, Len(Nombre) - InStr(1, Nombre, ",", 1))
    MsgBox "Partie Entiere: " & Entier & Chr(13) & "Partie Décimale: " & Decimale
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 avril 2008 à 09:32
Salut,

>[auteur/JMFMARQUES/615490.aspx jmfmarques] : Faudra tout de meme penser à refaire un StrReverse apres le Val sinon tu obtiendras 21 pour 100,12

@+: Ju£i?n
Pensez: Réponse acceptée
0
edt992 Messages postés 18 Date d'inscription mercredi 19 juillet 2006 Statut Membre Dernière intervention 10 avril 2008
10 avril 2008 à 11:03
L'utilisation de Split me semble quand même nettement plus adapté au problème posé :

Decimal = Split(Nombre, ",")(1)
0
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
10 avril 2008 à 19:58
merci pour toute les solution...
0
TrackForce Messages postés 1 Date d'inscription vendredi 22 septembre 2023 Statut Membre Dernière intervention 22 septembre 2023
22 sept. 2023 à 11:29

Il faut utiliser le fonction len(). trop facile.

0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
22 sept. 2023 à 12:32

Bonjour

15 ans après est ce bien utile ?

0
dysorthographie Messages postés 92 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 3 avril 2024 5
22 sept. 2023 à 12:00

Bonjour,

Tu utilises un vieil éditeur Visual studio 6 ou un vs supérieur 2005, 2008, 2019 ,etc.?

0
Rejoignez-nous