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 :

Sommes de cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut Sommes de cellules
    Bonjour,
    j'ai cherché dans l'aide de VBA et sur internet mais j'ai pas trouvé la cause de mon erreur.
    Je dispose d'une feuille excel ou son renseignées des cellules. Ma macro permet de verifier si la somme de certaines cellules est égale à 1 ce qui fonctionnait jusqu'ici. Sauf que aujourd'hui j'ai des valeur avec 2 chiffres apres la virgule et ca ne fonctionne plus.
    En fait sur 3 cellules j'ai 0,7 + 0,15 + 0,15. Quand le code additionne les deux premières cellules il obtient 0,85 mais quand il additionne la 3ème le résultat est 0,999999... donc il me dit qu'il y a une erreur dans mon fichier (c'est moi qui ai créé l'erreur) sauf que c'est faut. alors que quand j'ai 0,5 + 0,4 + 0,1 ca fonctionne.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sommecoeff = sommecoeff + CSng(Format(CDbl(Cells(i, tabCoeffHrs(j)))))
    avec sommecoeff declaré en single.

    Que dois-je faire?

    D'avance merci

    Jamelie

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Par défaut
    Salut,
    D'une manière générale faut déclare des double.
    Ensuite, on ne doit jamais teste un double par rapport à une autre double sur un ordinateur , a cause des erreur d'arrondi.
    Car par Exemple :
    0.95 est différent de 0.94999999999999999


    Pour ton test il faut teste faire une fonction du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function Equal(ByRef v1 As Double, _
                        ByRef v2 As Double, _
                         Optional theError As Double = 0.00000001) As Boolean
        If (Abs(v1 - v2) > theError ) Then Equal = False Else Equal = True
    End Function
    Quand tu test ta somme égale à 1 tu appelle cette fonction

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Inutile de passer par une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim sommecoeff As Single
    sommecoeff = 0.123787745
    sommecoeff = sommecoeff + CSng(Cells(10, 8).Text)
    'ou
    sommecoeff = sommecoeff + CSng(Cells(10, 8).Value)
    MsgBox sommecoeff
    Testé

    (Bonjour jfontaine, tu as testé ton code ? Chez moi, il "semble" ne pas fonctionner, enfin... pas plus que mon précédent...)

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    j'ai testé mon code, et il fonctionne. (Excel 2007)
    Par contre, il est possible que suivant les versions il faut utiliser Value2

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

Discussions similaires

  1. somme des cellules de plusieurs feuilles
    Par chagala dans le forum Excel
    Réponses: 4
    Dernier message: 08/06/2008, 11h37
  2. Somme des cellules non vides en VBA
    Par baldg dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/03/2008, 00h44
  3. faire une somme des cellules d'une selection
    Par prisme7 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2008, 23h23
  4. sommes de cellules
    Par psunk dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/09/2006, 10h49
  5. somme de cellule avec une condition
    Par fullcircle dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/06/2006, 07h17

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