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.