IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Problème de calculer avec textbox et produire un single ou double ?


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Par défaut Problème de calculer avec textbox et produire un single ou double ?
    salut à tous.
    j'utilise une feuille avec objet ADO dans laquelle j'ai mis des textbox. j'essaie de calculer un montant avec, mais le résultat ne se fait qu'en integer, bien que j'ai utilisé CStr. Par exemple:
    textBox3.Text = CStr(CSng(textBox1.Text) * CSng(textBox2.Text)
    mais j'obtiens pas de virgule.
    Pouvez vous m'aider. et merci.

  2. #2
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Bonsoir et bienvenu dans le forum.

    Et si tu essayais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textBox3.Text = CDec(textBox1.Text) * CDec(textBox2.Text)

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Par défaut Partiellement Résolu.
    merci SOVO.
    ça provoque les mêmes erreurs que CDbl ou CSng.
    mais j'ai trouvé que mon problème était que dans ma configuration système, j'avais la virgule "," comme symbôle décximal et je l'ai changé en point ".", et maintenant ça marche.
    mais j'aimerais toujours avoir des chifres décimaux en virgule plutôt qu'en point, ce sera plus lisible.

  4. #4
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    tu pourais tout simplement utliser la fonction replace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textBox3.Text = replace(textBox3.Text, ".", ",")

  5. #5
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Ou encore...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim nbrDecimal As Double
    nbrDecimal = Val(Replace(Text1.Text, ",", "."))

  6. #6
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Une petite fonction à mettre dans un coin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" _
     (ByVal locale As Long,  ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
     
    Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
    Private Const LOCALE_STHOUSAND = &HF       'séparateur des milliers
    Private Const LOCALE_SDECIMAL = &HE        'séparateur décimal
     
     
    Private Function CVal(nbretxt As String) As Double
    '-- Convertie une chaine en Double, indépendament des paramètres régionaux
     
    Dim lngResultat As Long
    Dim buffer As String
    Dim SepDec As String, SepMil As String
    Dim loc As Long
     
        'récupère l'identifiant de l'information locale de type utilisateur
        On Error GoTo CVal_Error
     
        loc = GetUserDefaultLCID()
     
        'Récupère le séparateur décimal
        lngResultat = GetLocaleInfo(loc, LOCALE_SDECIMAL, buffer, 0)
        buffer = String(lngResultat, 0)
        GetLocaleInfo loc, LOCALE_SDECIMAL, buffer, lngResultat
        SepDec = Left(buffer, 1)
     
        'Récupère le séparateur des Milliers
        lngResultat = GetLocaleInfo(loc, LOCALE_STHOUSAND, buffer, 0)
        buffer = String(lngResultat, 0)
        GetLocaleInfo loc, LOCALE_STHOUSAND, buffer, lngResultat
        SepMil = Left(buffer, 1)
     
        'Effectue le remplacement
        nbretxt = Replace(nbretxt, SepMil, "")
        nbretxt = Replace(nbretxt, SepDec, ".")
     
        CVal = Val(nbretxt)
     
        On Error GoTo 0
        Exit Function
     
    CVal_Error:
        Err.Clear
        CVal = 0
    End Function

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Condition de Calcul avec textbox
    Par jonathanoudelet dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/08/2008, 11h23
  2. Problème de calcul avec arrondis
    Par Flaguette dans le forum Access
    Réponses: 5
    Dernier message: 23/05/2008, 23h00
  3. XSL problème de calcul avec décimales
    Par jejelafrite dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/07/2007, 21h53
  4. Problème de calcul avec les float
    Par Oberown dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/05/2006, 09h28
  5. Problème de calcul avec les heures
    Par smotte76 dans le forum Access
    Réponses: 12
    Dernier message: 28/04/2006, 20h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo