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

Excel Discussion :

Somme par mois


Sujet :

Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2016
    Messages : 37
    Points : 21
    Points
    21
    Par défaut Somme par mois
    Bonjour,
    J'ai une série de valeurs à sommer par mois, autrement dit, j'ai deux colonnes de taille variable: l'une contient les montants et l'autre contient les dates: mois-année.
    SOMMEPROD((MOIS($A$2:$A$500)=1)*$E$2:$E$500)
    ....
    SOMMEPROD((MOIS($A$2:$A$)=12)*$E$500:$E$500)
    donne de bon résultat.
    comment je peux l’intégrer en code VBA?
    j'ai essayé ce code:
    [Sub Formule()
    For i= 1 To 12
    Cells(i, 13) = Application.WorksheetFunction.SumIf(mois(Range("B2:B500")), "i", Range("A2:A500"))
    Next
    End Sub]
    => erreur§
    Je débute en VBA donc ne me jugez pas sévèrement.

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Quand tu es à Rome, agit comme un romain.
    Quand tu fais du VBA, pense en VBA.
    Essayer de retranscrire en VBA ce qui se fait en fonctions Excel est souvent une mauvaise idée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Formule()
        Dim Lig as Long, Mois as Integer
     
        For Mois = 1 to 12
            Cells(Mois,13) = 0
            For Lig = 2 To Cells(Rows.Count,1).End(xlUp).Row
                If Month(Cells(Lig, 1)) = Mois Then Cells(Mois, 13) = Cells(Mois, 13) + Cells(Lig, 5)
            Next Lig
        Next Mois
     
    End Sub
    Je n'ai pas testé. Il y aura donc peut-être du débugage à faire.
    Attention : ce code part du principe que toutes les dates de la colonne A sont situées la même année.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2016
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Avant tout, merci pour cette réponse rapide.
    Et comme tu l'a déjà dit, ce code va bien avec les montants d'une même année.
    Sinon?
    J'essaye de penser en VBA mais, beginnings are always the hardest.

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par JechercheT Voir le message
    Et comme tu l'a déjà dit, ce code va bien avec les montants d'une même année.
    Sinon?
    Sinon, déjà, le SOMMEPROD que tu as donné en message #1 ne marche pas.

    Pour ce qui est du code, il faudra ajouter le critère "année" (Year()) au test If.

    J'essaye de penser en VBA mais, beginnings are always the hardest.
    Prendre le temps de se former, ça peut aider.
    http://bidou.developpez.com/article/VBA/
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2016
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    j'ai partitionné mes données selon année manuellement: copier coller
    puis, sommeprod.
    mais quand tu as mis l’hypothèse, j 'ai pensé qu'il y aura une solution une fois pour toute (çad: éviter la première étape de copier coller).
    Auparavant, je le faisais aisément par un logiciel statistique, mais en VBA
    Merci encore une fois.

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 412
    Points : 16 254
    Points
    16 254
    Par défaut
    Bonjour

    Pourquoi pas tout simplement un Tableau Croisé Dynamique ?
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  7. #7
    Membre à l'essai
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2016
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2016
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Franchement, j'en savais rien.
    Donc, j'essaie, tout de suite de l'étudier.
    Merci pour ta proposition Chris.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/08/2015, 13h20
  2. [XSLT 1.0] Trier par mois et faire une somme
    Par TiBen dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 02/02/2012, 12h51
  3. Faire une somme par mois
    Par jouclar dans le forum Général Python
    Réponses: 5
    Dernier message: 09/10/2011, 14h08
  4. Somme par mois
    Par sumtech dans le forum Requêtes et SQL.
    Réponses: 26
    Dernier message: 21/03/2007, 18h36
  5. Somme pluvio par mois
    Par Grégo_42 dans le forum Access
    Réponses: 5
    Dernier message: 05/02/2006, 15h54

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