Macro somme par mois de résultat journaliers

Alex52

XLDnaute Nouveau
Bonjour a tous et bonjour le forum !

Je me permet de vous solliciter car j'ai un problème que je n'arrive pas a résoudre :
-j'ai une feuille avec des données pour chaque jour (Feuil1)
-une autre feuille avec des données pour chaque mois (Feuil2)
-la feuille des données par jour est mise a jour tous les jours


J'aurais aimer faire une macro qui me fasse la somme de mes données de la feuille de données par jour pour mettre cette somme dans ma feuille de données par mois en mettant bien les données dans le bon mois par rapport a la date de mes données de la feuille par jour.

J'ai déjà essayé plusieurs solution (faire des boucles for, utilisé la fonction month...) mais sans succès je reste bloqué :confused:

Je vous joint un fichier a titre d'exemple pour une meilleure compréhension de mon problème.

Pourriez vous m'aider s'il vous plaît ?
Je vous remercie d'avance.
 

Pièces jointes

  • Exemple.zip
    11.4 KB · Affichages: 36
  • Exemple.zip
    11.4 KB · Affichages: 37
  • Exemple.zip
    11.4 KB · Affichages: 38
Dernière édition:

mth

XLDnaute Barbatruc
Re : Macro somme par mois de résultat journaliers

Bonsoir Alex,

Je réponds peut-être à coté de la plaque puisque tu cherches des macros, alors que là je te propose des formules... mais bon, au cas où ...
voici ton fichier en PJ ou j'ai usé et abusé des SOMMEPROD().

Bonne soirée/nuit,

mth
 

Pièces jointes

  • ExempleAlex.zip
    11.8 KB · Affichages: 41

ROGER2327

XLDnaute Barbatruc
Re : Macro somme par mois de résultat journaliers

Suite...
Un code :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim i&, j&, datR&, oDat, oXct
   With Feuil1: oDat = .Range(.Cells(4, 5), .Cells(.Rows.Count, 1).End(xlUp)).Value: End With
   With Feuil2
      oXct = .Range(.Cells(4, 5), .Cells(.Rows.Count, 1).End(xlUp)).Value
      For i = 2 To UBound(oXct, 1)
         For j = 2 To 5
            oXct(i, j) = Empty
         Next j
         If IsDate(oXct(i, 1)) Then
            datR = DateSerial(Year(oXct(i, 1)), Month(oXct(i, 1)), 1)
            For j = 2 To UBound(oDat, 1)
               If datR = DateSerial(Year(oDat(j, 1)), Month(oDat(j, 1)), 1) Then
                  oXct(i, 2) = oXct(i, 2) + oDat(j, 2)
                  oXct(i, 3) = oXct(i, 3) + oDat(j, 2) * oDat(j, 3)
                  oXct(i, 4) = oXct(i, 4) + oDat(j, 2) * oDat(j, 4)
                  oXct(i, 5) = oXct(i, 5) + oDat(j, 5)
               End If
            Next j
            If oXct(i, 2) Then
               oXct(i, 3) = oXct(i, 3) / oXct(i, 2) / 86400
               oXct(i, 4) = oXct(i, 4) / oXct(i, 2) / 1440
               oXct(i, 5) = oXct(i, 5) / 1440
            Else
               oXct(i, 2) = 0
               oXct(i, 3) = "-"
               oXct(i, 4) = "-"
               oXct(i, 5) = "-"
            End If
         End If
      Next i
      .Range(.Cells(4, 5), .Cells(.Rows.Count, 1).End(xlUp)).Value = oXct
   End With
End Sub[/B][/COLOR]
ROGER2327
#3337
 

Pièces jointes

  • Alex52_3337.xls
    23 KB · Affichages: 72
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Macro somme par mois de résultat journaliers

Bonjour Alex52, mth, ROGER2327,
Une proposition sans macros, avec un TCD...
Cordialement
 

Pièces jointes

  • Exemple.zip
    10.9 KB · Affichages: 34
  • Exemple.zip
    10.9 KB · Affichages: 34
  • Exemple.zip
    10.9 KB · Affichages: 32

Discussions similaires

Réponses
21
Affichages
556
Réponses
45
Affichages
1 K
Réponses
14
Affichages
839

Statistiques des forums

Discussions
312 696
Messages
2 091 056
Membres
104 749
dernier inscrit
Boussou