SUMPRODUCT entre deux dates

Bonjour,

Le code ci-dessous fonctionne bien.

Sub CALCUL()

Dim MOIS As Integer

Dim ANNEE As Integer

Dim MT As Range

Dim DATEFACT As Range

ANNEE = 2014

Set MT = Sheets("Tab Recap").Range("B2:B10")

Set DATEFACT = Sheets("Tab Recap").Range("C2:C10")

For MOIS = 1 To 11

Sheets("Tab Recap").Range("B" & 2 * (MOIS) + 1).FormulaR1C1 = "=SUMPRODUCT((MT)*(DATEFACT>=DATEVALUE(""01/" & (MOIS) & "/" & (ANNEE) & """))*1*(DATEFACT<DATEVALUE(""01/" & (MOIS) + 1 & "/" & (ANNEE) & """))*1)"

Next

Sheets("Tab Recap").Range("B25").FormulaR1C1 = "=SUMPRODUCT((MT)*(DATEFACT>=DATEVALUE(""01/" & 12 & "/" & (ANNEE) & """))*1*(DATEFACT<=DATEVALUE(""31/" & 12 & "/" & (ANNEE) & """))*1)"

End Sub

La formule recherche une date comprise entre le 01/MOIS/ANNEE et le 01/MOIS+1/ANNEE

Par conséquent, je dois arrêter la variable à 11, car si la variable est = à 12, le mois 12+1 n'existe pas et donc j'écris une nouvelle ligne.

Je pense qu'il y a moyen de simplifier le code avec la fonction "Month" pour faire une recherche de la date uniquement avec date= MOIS/ANNEE, mais je n'y suis pas arrivé.

Merci de votre aide.

Bonjour

DateSerial permet de mettre 13 !

Le code suivant donne le dernier jour de cette année

DateSerial(2014, 13, 0)

Ou pour le 1er janvier 2015

DateSerial(2014, 13, 1)

Tu peux donc continuer au-delà de 12 et DateSerial(ANNEE, MOIS + 1, 1) te donnera le 1er janvier de l'année suivante pour MOIS = 12 !

Bonjour,

On en apprend tout les jours....(surtout quand on débute comme moi).

Ton aide m'a permis de résoudre une autre question que j'avais posté.

Merci

Rechercher des sujets similaires à "sumproduct entre deux dates"