[Vba Excel] Somme par rapport à une date

Résolu
Bonjour,

Je voudrais établir un "tableau de bord".
J'ai une feuille par "agence", dans chaque feuille j'ai une liste de commandes passées.

Dans mon tableau final, je voudrais récupérer par mois la somme totale des commandes.

Donc faire d'abord une recherche par date dans chaque feuille, puis qu'il additionne les valeurs trouvées. Et qu'au final dans mon tableau, j'ai le montant des dépenses mensuelles par agence.

Quelqu'un a-t- il une solution ?

Merci d'avance pour votre aide !
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. je ne vois pas trop quel est le probleme, as-tu essayé via les filtres ou les sous-totaux?

    Aurais-tu un fichier d'exemple pour mieux voir le pb?

    Irem
    0
    1. nan les filtres ça ne marche pas (le tableau de bord est sur une autre feuille) et les sous totaux non plus puisque c'est en fonction d'une période que je veux récupérer les infos et pas d'une catégorie (je me trompe peut-être, ça peut peut etre marcher mais je ne sais pas faire dans ce cas)

      Comment je peux faire pour ajouter une image (exemple de classeur) au sujet ? (par mail ? messagerie ?)
      0
      1. Bon ayé j'ai trouvé la solution. Pour ceux qui se poseraient la question voici le code vba appliqué :

        Private Sub DépensesMensuelles(code_agence As String, mois As Integer, cellule As Range)
        ' Mise à jour des dépenses mensuelles
        ' Paramètres :
        ' code_agence : Code de l'agence correspondant au nom de la feuille Excel
        ' mois : Mois dont on veut calculer le total des dépenses
        ' cellule : Cellule où copier le total

        Dim total_depenses As Double
        total_depenses = 0

        Dim feuille_agence As Worksheet
        Set feuille_agence = Sheets(code_agence)

        ' 1ère date de dépense de l'agence
        Dim date_depense As Range
        Set date_depense = feuille_agence.Range("A9")

        Do While date_depense <> ""
        Dim depense As Date

        depense = date_depense.Value
        ' Vérification que le mois correspond
        If Month(depense) = mois And Year(depense) = 2007 Then
        ' Si un montant est présent => Ajout au total des dépenses
        If date_depense.Offset(0, 7).Value <> "" Then
        total_depenses = total_depenses + date_depense.Offset(0, 7).Value
        End If
        End If
        Set date_depense = date_depense.Offset(1, 0)
        Loop
        ' Copie du total dans la cellule passée en paramètre
        cellule.Value = total_depenses
        End Sub

        Private Sub MajDepenseagence(code_atm As String, cellule_depart As Range)
        '
        DépensesMensuelles code_agence, 1, cellule_depart
        DépensesMensuelles code_agence, 2, cellule_depart.Offset(0, 1)
        DépensesMensuelles code_agence, 3, cellule_depart.Offset(0, 2)
        DépensesMensuelles code_agence, 4, cellule_depart.Offset(0, 3)
        DépensesMensuelles code_agence, 5, cellule_depart.Offset(0, 4)
        DépensesMensuelles code_agence, 6, cellule_depart.Offset(0, 5)
        DépensesMensuelles code_agence, 7, cellule_depart.Offset(0, 6)
        DépensesMensuelles code_agence, 8, cellule_depart.Offset(0, 7)
        DépensesMensuelles code_agence, 9, cellule_depart.Offset(0, 8)
        DépensesMensuelles code_agence, 10, cellule_depart.Offset(0, 19)
        DépensesMensuelles code_agence, 11, cellule_depart.Offset(0, 10)
        DépensesMensuelles code_agence, 12, cellule_depart.Offset(0, 11)

        End Sub

        Private Sub BtnMaJRecap_Click()
        ' Mise à jour de chaque agence
        MajDepenseagence "77", Range("B26")
        MajDepenseagence "78", Range("B27")
        MajDepenseagence "91", Range("B28")

        End Sub
        0