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

Macros et VBA Excel Discussion :

Gestion des decimales dans les operations d'une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 105
    Points
    105
    Par défaut Gestion des decimales dans les operations d'une macro
    Bonjour a tous,

    Mon probleme est relativement simple. J'ai une macros au sein de laquelle j'additionne ou multiplie des nombres decimaux. Seulement mon resultat est systematiquement entier. Peu importe le format de ma cellule (que je le change avant ou apres)

    J'imagine que je dois pouvoir le faire dans la macro, mais l'aide pour la fonction Format ne donne des exemples que pour les dates et l'heure malheureusement...

    Merci d'avance !

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour

    à tu essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    'avec deux décimales
        Range("B1").NumberFormat = "0.00"
     
    'format réel
        Range("B1").NumberFormat = "General"
     
    'sans décimales
        Range("B1").NumberFormat = "0.00"

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 105
    Points
    105
    Par défaut
    Je viens d'essayer, mais malheureusement mon souci persiste.

    L'affichage des differents nombres se fait bien avec 2 decimales, mais lorsque je fais la somme sur une colonne de par exemple : 2,50 ; 10,00 ; 3,00
    Le resultat est 15,00

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Ce serait bien que tu montres la macro que tu utilises, cela vient peut-être d'elle et non du format des cellules.

    Philippe

  5. #5
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 105
    Points
    105
    Par défaut
    La macro que j'ai est plutot longue ( 80 lignes environs). Voici donc l'un des fragments de code ou je fais le calcul et pour lerquel le resultat me pose probleme.

    cmpt et scmpt sont des Long.

    Le code ci dessous fait la somme des valeurs dans deux colonnes differentes et ecrit le resultat sur la ligne ou il y a ecrit bnis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For Each D In STD.Range("D4:D500")
      If Right(D.Value, 4) = "bnis" Then
        D.Offset(0, 11) = cmpt
        D.Offset(0, 5) = scmpt
        D.Offset(0, 11).Font.Bold = True
         D.Offset(0, 5).Font.Bold = True
        cmpt = 0
        scmpt = 0
      Else
        cmpt = cmpt + D.Offset(0, 11).Value
        scmpt = scmpt + D.Offset(0, 5).Value
      End If
    Next

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour

    est-ce que tes variables cmpt et scmpt sont déclarés en Single ou double ?

  7. #7
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 105
    Points
    105
    Par défaut
    euh... j'en sais rien.

    J'ai juste ecrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dim cmpt as long, scmpt as long

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    re,

    le type Long est un entier
    extrait de la doc
    Les variables de type Long (entier long) sont stockées sous la forme de nombres signés de 32 bits (4 octets) dont la valeur est comprise entre -2 147 483 648 et 2 147 483 647.
    change les en types Doubles (F1 sur le type pour en connaître les valeurs)
    et tu auras des totaux avec décimales

    bon courage

Discussions similaires

  1. Gestion des erreurs dans les pages JSP
    Par elewandowski dans le forum Struts 2
    Réponses: 3
    Dernier message: 04/12/2007, 21h18
  2. Gestion des Blocs et Les Onglet d'une Forme
    Par scofield dans le forum Forms
    Réponses: 10
    Dernier message: 10/11/2007, 09h07
  3. Mettre des components dans les cases d'une JTreeTable
    Par chandler8692 dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 02/07/2007, 11h20
  4. Gestion des durées dans les tables Access
    Par climz dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 24/05/2006, 15h29
  5. Gestion des NULL dans les tables externes
    Par plouf2244 dans le forum Firebird
    Réponses: 1
    Dernier message: 23/03/2006, 16h55

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