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 :

Sommer des données sous conditions


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut Sommer des données sous conditions
    Bonjour le forum

    J'ai 2 feuilles intitulées "C_MOIS" et "CENTRALISATION".
    Je souhaite faire la somme de certaines cellules de la feuille "CENTRALISATION" dans la feuille "C_MOIS".
    Conditions à prendre en compte pour la sommation: valeur de C_MOIS!M5 et C_MOIS!M6 (date départ et date fin) sachant que ces cellules contiennent des listes déroulantes (M1, M2, M3...M12) qui correspondent au 12 mois de l'année.
    En fonction de date départ et date fin, la somme des périodes concernée devra être faite dans les cellules concernées de la feuille "C_MOIS" (voir exemples ci-dessous).
    La feuille "CENTRALISATION" contient les données à sommer.
    Les périodes (mois) de la feuille "CENTRALISATION" se trouvent dans les cellules B1, C1...M1 respectivement (M1, M2, M3...M12).
    Comment faire pour qu’en choisissant dans C_MOIS!M5 ET C_MOIS!M6 les périodes pour lesquelles la sommation devra être faite, obtenir effectivement la somme de l'intervalle concerné.
    Exemple1 :
    Si je choisis dans C_MOIS!M5 la valeur M1 (M1 étant la date départ) et en C_MOIS!M6 la valeur M3 (date fin), cela signifie que la sommation dans C_MOIS!k13 doit concernées les cellules suivantes CENTRALISATION!B4;CENTRALISATION!C4;CENTRALISATION!D4
    Exemple2 :
    Si je choisis dans C_MOIS!M5 la valeur M2 (M2 étant la date départ) et en C_MOIS!M6 la valeur M7, cela signifie que la sommation dans C_MOIS!k13 doit concernées les cellules suivantes: CENTRALISATION!C4;CENTRALISATION!E4;CENTRALISATION!F4;CENTRALISATION!G4;CENTRALISATION!H4;CENTRALISATION!J4

    Je reste à votre disposition pour plus d'information ou au besoin vous joindre le fichier pour mieux me faire comprendre.

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 923
    Points : 5 141
    Points
    5 141
    Par défaut
    bonsoir cousin, Bonsoir la forum
    j'ai pas bien compris ta requête essayer d’être bref et claire
    j'ai simplement supposé que tu as en une feuille (CENTRALISATION) composé de deux colonnes (Colonne A pour les dates et Colonne B pour les montant)
    une deuxième feuille (C_MOIS) ou tu saisira en B1 la date de départ et en B2 la date fin
    puis tu insère ce code qui va te sommer les montants figurant en feuille (CENTRALISATION) et qui compris en les deux dates
    J'espère que cette réponse n'est pas un hors jeu !!! malgré notre défaite lors de 1/4 du dernier coupe d’Afrique contre la BF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Calculer()
    Dim Tablo
    Dim i As Long
    Tablo = Sheets("CENTRALISATION").Range("A2", "B" & Sheets("CENTRALISATION").Range("B" & Rows.Count).End(xlUp).Row)
    For i = LBound(Tablo, 1) To UBound(Tablo, 1)
        If Tablo(i, 1) >= Sheets("C_MOIS").Range("B1") And Tablo(i, 1) <= Sheets("C_MOIS").Range("B2") Then
            resultat = resultat + Tablo(i, 2)
        End If
    Next i
    Sheets("C_MOIS").Range("B3") = resultat
        Application.ScreenUpdating = True
    End Sub
    BONNE CONTINUATION
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  3. #3
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Bonsoir Cousin et le forum

    Dans la feuille CENTRALISATION (ligne 1) j'ai les périodes représentées par M1….M12.
    En choisissant dans M5 et M6 les périodes à sommer, les périodes concernées de la feuille CENTRALISATION devront être additionnés.
    Ci-joint le lien au cas ou http://www.cjoint.com/c/GBuseiWZoxf
    malgré notre défaite lors de 1/4 du dernier coupe d’Afrique contre la BF
    Le cousin cava aller
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 923
    Points : 5 141
    Points
    5 141
    Par défaut
    Bonjour
    Pour information je suis aussi débutant et autodidacte en VBA et la solution proposé c'est du bricolage et les grands experts de ce super certain ont des solutions meilleures
    J'ai pas arrivé au résultat souhaité c'est pourquoi j'ai remplacer (M1, M2....M12) par (1,2 ....12)
    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
    Sub Calculer()
    resultat = 0
    Sheets("C_MOIS").Range("M7").Value = 0
    Dim i As Long
    With Sheets("CENTRALISATION")
     Application.ScreenUpdating = False
     i = .Cells.SpecialCells(xlCellTypeLastCell).Row
       For j = 2 To 12
       If .Cells(1, j) >= Sheets("C_MOIS").Range("M5") And .Cells(1, j) <= Sheets("C_MOIS").Range("M6") Then
            For i = 2 To i
            resultat = resultat + .Cells(i, j)
            Next i
        End If
        Next j
    End With
    Sheets("C_MOIS").Range("M7") = resultat
        Application.ScreenUpdating = True
    End Sub
    Fichiers attachés Fichiers attachés
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  5. #5
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2011
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 571
    Points : 93
    Points
    93
    Par défaut
    Bonsoir le cousin et le forum

    Je viens de tester et je constate que la sommation porte sur toutes les cellules concernées et non.
    Je pense que la sommation devrait être faite par plage de ligne et non par plage de colonne.

    Bonne compréhension

Discussions similaires

  1. [XL-2010] Extraire des données sous conditions entre deux bornes
    Par benadry dans le forum Excel
    Réponses: 4
    Dernier message: 13/02/2015, 11h57
  2. récupérer des données sous conditions
    Par Lost_in_VBA dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/07/2011, 14h11
  3. Copier des données sous condition
    Par delphine1987 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2011, 22h17
  4. [XL-2007] D'un classeur, récupérer des données sous condition
    Par SenseniX dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 25/06/2010, 10h58
  5. [XL-2007] Récupérer des données sous conditions
    Par christophe31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/05/2010, 15h20

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