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 :

Code qui ne donne pas la bonne somme


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 129
    Points : 55
    Points
    55
    Par défaut Code qui ne donne pas la bonne somme
    Bonjour,

    Je me sers de ce topic pour continuer un peu sur le même type de question.
    J'ai pensé que je pouvais utiliser cette fonction pour additionner en fonction des dates et de certains éléments et j'en arrive à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function CalculCAMois(Annee As String, Mois As Integer, Zone As Range) As Integer
     
    For Each c In Zone
    If c.Offset(0, -15).Value = FrmStat.ComboStat.Value Then
    If IsDate(c) Then If Year(c)=Annee Then If Month(c) = Mois Then CalculCAMois + c.Offset(0,-7).Value
    End If
     
    Next c
     
    End Function
    Mais je ne trouve pas la bonne somme...
    Quelqu'un a-t-il une piste?

    Merci d'avance

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Citation Envoyé par gangsterus Voir le message
    Mais je ne trouve pas la bonne somme...
    Mais encore? Ne trouverais-tu pas sytèmatiquement 0?

    PGZ

  3. #3
    Membre régulier Avatar de DidierLoche
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 84
    Points : 105
    Points
    105
    Par défaut
    Bonsoir,

    Dans ton code, ne manquerait-il pas quelque chose du type "CalculCAMois = ..." !!! ?

    Didier

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 129
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Merci pour ces réponses.
    Effectivement, il manque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CalculCAMois = CalculCAMois + c.Offset(0, -7).Value
    à la place de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CalculCAMois + c.Offset(0,-7).Value
    J'avais mal recopié mon code. En effet, je suis obligé de recopier le code à chaque fois car je ne travaille pas sur un pc relié à internet.
    Le résultat que je devrais avoir est 93495 et j'ai 57000...

    Merci d'avance si vous avez une idée

  5. #5
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Citation Envoyé par gangsterus Voir le message
    Le résultat que je devrais avoir est 93495 et j'ai 57000...

    Merci d'avance si vous avez une idée
    Première idée : CalculCAMois devrait être du type Long et non pas Integer.

    PGZ

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 129
    Points : 55
    Points
    55
    Par défaut
    Merci pour cette remarque.
    Je viens d'essayer et ça ne change rien.
    Depuis vendredi, j'avais mis CalculCAMois en Currency.

    Je suis toujours sur le problème mais je ne comprends pas où j'ai bien pu me tromper ou oublier quelquechose...

  7. #7
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Citation Envoyé par gangsterus Voir le message
    Depuis vendredi, j'avais mis CalculCAMois en Currency....
    Si le code que tu donnes n'est pas le bon, il ne va pas être facile de t'aider.

    Deuxième idée : Pourquoi Annee est de type string?

    PGZ

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 129
    Points : 55
    Points
    55
    Par défaut
    Merci pour ton aide.
    On réfléchit ensemble, c'est marrant, je viens de changer l'année en Integer.
    Mais je pense que le problème vient du mois.
    J'ai essayé de changer "Mois" par "1" et ça me donne le bon chiffre...
    Reste à comprendre pourquoi

  9. #9
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Citation Envoyé par gangsterus Voir le message
    J'ai essayé de changer "Mois" par "1" et ça me donne le bon chiffre...
    Reste à comprendre pourquoi
    Il faudrait voir le code qui appelle la fonction.

    PGZ

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 129
    Points : 55
    Points
    55
    Par défaut
    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    FrmStat.ComboAnneeStat.Value = "2008"
     
    FrmStat.IntCA01.Caption = CalculCAMois(FrmStat.ComboAnnee.Value, 1, Range(PlageStats))
    FrmStat.IntCA02.Caption = CalculCAMois(FrmStat.ComboAnnee.Value, 2, Range(PlageStats))
    FrmStat.IntCA03.Caption = CalculCAMois(FrmStat.ComboAnnee.Value, 3, Range(PlageStats))
    FrmStat.IntCA04.Caption = CalculCAMois(FrmStat.ComboAnnee.Value, 4, Range(PlageStats))
    Etc.

    Merci pour ton aide

  11. #11
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Tu voulais dire quoi par :
    Citation Envoyé par gangsterus Voir le message
    J'ai essayé de changer "Mois" par "1" et ça me donne le bon chiffre...
    puisque c'est déjà 1, 2, 3, ...?

    PGZ

  12. #12
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 129
    Points : 55
    Points
    55
    Par défaut
    J'ai remplacé dans:

    Mois par "1".
    Mais je ne comprends pas pourquoi ça fonctionne dans ce cas là.

  13. #13
    Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 129
    Points : 55
    Points
    55
    Par défaut
    Bon, je reconnais que je suis un boulet
    Et que j'ai monopolisé le temps de certains pour une bêtise. Je vous présente toutes mes confuses.
    Je ne sais pas si je peux oser dire ce qui n'allait pas...

    Bon allez, si, je vais mais pas taper svp.

    J'ai fait fonctionner la fonction pour chaque mois de l'année.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FrmStat.IntCA01.Caption = CalculCAMois(FrmStat.ComboAnnee.Value, 1, Range(PlageStats))
    FrmStat.IntCA02.Caption = CalculCAMois(FrmStat.ComboAnnee.Value, 2, Range(PlageStats))
    FrmStat.IntCA03.Caption = CalculCAMois(FrmStat.ComboAnnee.Value, 3, Range(PlageStats))
    FrmStat.IntCA04.Caption = CalculCAMois(FrmStat.ComboAnnee.Value, 4, Range(PlageStats))
    ...
    mais je n'avais pas changé le nom des labels.
    J'avais donc le chiffre du mois de décembre dans le label IntCA01 qui était prévu pour recevoir le chiffre du mois de janvier...


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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/04/2011, 11h42
  2. [MySQL] Effacement de données - code qui ne fonctionne pas
    Par SecondSight dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/01/2011, 05h02
  3. comptage ou somme qui ne donne pas le resultat attendu
    Par JeAn-PhI dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/02/2010, 14h47
  4. Réponses: 6
    Dernier message: 03/04/2009, 10h05
  5. Rnd qui ne donne pas que des bonnes valeurs
    Par kubito dans le forum Access
    Réponses: 2
    Dernier message: 08/10/2004, 18h00

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