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 :

Une somme conditionnelle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Indépendant spécialiste Cognos/Essbase
    Inscrit en
    Août 2008
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Indépendant spécialiste Cognos/Essbase
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 384
    Par défaut Une somme conditionnelle
    Bonjour,

    dans mon fichier exemple en pj je voudrais faire une somme conditionnelle sur l'année.

    • En B1 une date au format "aaaa" exemple : 2012
    • en An:Bn une date au format "dd/mm/aaaa" et des chiffres
    • le but : n'additionner que les lignes dont la date = celle en B1


    J'ai essayé avec une fonction SOMME.SI mais vu les arguments je ne crois pas que ce soit la bonne méthode puisque je dois pouvoir evaluer chaque ligne avec B1.

    Avez vous une piste pour faire cela ?

    Merci d'avance pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour,

    Je te propose la solution suivante :
    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
    Sub Total()
    Dim test As Range
    Dim Year As Integer
    Dim Total As Integer
     
     
    With Worksheets("Feuil1")
        Set test = .Range("B1")
        Total = 0
     
        k = 1
        Do While test.Offset(k, 0) <> ""
            Year = CInt(Right(test.Offset(k, -1).Value, 4))
            If Year = 2012 Then
                Total = Total + test.Offset(k, 0)
            End If
     
            k = k + 1
        Loop
     
        test.Offset(k + 2, 0) = Total
     
    End With
     
    End Sub
    Le total s'affichera 2 cases en dessous de ta dernière valeur.
    Dis moi, si cela te convient. =)

  3. #3
    Membre éclairé
    Homme Profil pro
    Indépendant spécialiste Cognos/Essbase
    Inscrit en
    Août 2008
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Indépendant spécialiste Cognos/Essbase
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 384
    Par défaut
    Salut,

    merci pour ta réponse. Cela me semble un peu compliqué pour une simple somme conditionnelle, non ? Je veux dire y'a pas moyen de faire ça avec les fonctions embarquées plutôt que de faire une macro ?

    Car il s'agit bien de cela non ? tu proposes une macro à lancer sur un clik bouton ?
    Je suis pas très à l'aise avec ça. Comment tu l'implémentes ?

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Tu as posté ton message dans le forum VBA... Je me suis donc dis que tu voulais une macro...

    Perso, depuis que j'ai appris ce language, je n'utilise plus que ça. Tu cliques sur "Developpeur" puis "Macro", tu sélectionnes le nom de ta macro et ça t'envoies le résultat.

    Pour ce qu'il s'agit de l'excel pur, je te propose de poster ta question sur un forum excel et non VBA. =)

    Sinon pour lancer la macro, tu fais "alt" + F11. Tu cliques droit sur le classeur que tu utilises puis "Insertion" puis "Module". Tu copies/colles ce qui est au dessus puis tu enregistre le tout dans un classeur qui utilise les macros.
    Après le tour est joué !

    Bonne continuation à toi !

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut
    Salut,

    tu es dans le forum macros et VBA excel il est donc normal qu'on te propose une macro!

    Sinon pour le faire plus simplement il faudrait ajouter une colonne contenant les années uniquement (tu peux la masquer si elle te gêne)

    Et utiliser la formule suivante, avec par exemple les années en colonne B et les chiffres à sommer colonne C

    =SOMME.SI(B2:Bn;B1;C2)

  6. #6
    Membre éclairé
    Homme Profil pro
    Indépendant spécialiste Cognos/Essbase
    Inscrit en
    Août 2008
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Indépendant spécialiste Cognos/Essbase
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 384
    Par défaut
    Tu as posté ton message dans le forum VBA
    Oups, ma foi je dirai que vous avez raison !!!!

    Bon je resous et je post ailleurs, en effet, m'a suis planté.

    Bon merci pour vos input quand même

  7. #7
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Je terminerai par ceci :

    Si tu veux un truc encore plus simple, tu créer toi-même ta fonction comme ceci :
    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
    Function Total(Range)
    Dim Year As Integer
    Dim Tot As Integer
     
     
    Set test = Range
    Tot = 0
     
    k = 1
    Do While test.Offset(k, 0) <> ""
        Year = CInt(Right(test.Offset(k, -1).Value, 4))
        If Year = 2012 Then
            Tot = Tot + test.Offset(k, 0)
        End If
     
        k = k + 1
    Loop
     
    Total = Tot
     
    End Function
    Tu n'as plus qu'a faire comme toute fonction : tu écris "=" puis le nom de la fonction (ici "Total"). En argument tu places la première ligne de la colonne sur laquelle tu veux faire ton total et le tour est joué ! =)

    Je ne sais pas si tu liras ceci mais c'est peut-être la meilleure solution ! =)

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

Discussions similaires

  1. faire une somme conditionnelle
    Par antoine dpt dans le forum VBA Access
    Réponses: 1
    Dernier message: 18/02/2010, 15h36
  2. une somme conditionnelle : possible ?
    Par mederik dans le forum Cognos
    Réponses: 4
    Dernier message: 22/01/2010, 17h50
  3. calcul d'une somme conditionnelle
    Par lio62 dans le forum Excel
    Réponses: 4
    Dernier message: 16/10/2007, 10h11
  4. Faire une somme conditionnelle
    Par pilpoil dans le forum Excel
    Réponses: 6
    Dernier message: 10/08/2007, 14h46
  5. [VBA-E]- Probleme pour realiser une somme conditionnelle
    Par ekynoxx dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/05/2007, 12h18

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