Bonjour,
j'ai ajouté "Annee As Integer" dans les arguments de la fonction qui est une case qui se trouve au-dessus de celle où il y a l'argument mois mais je je n'ai pas su l'intégrer dans la fonction "LeMois = Month("1/" & Mois & Annee)" car je comprends mal sa syntaxe.
A quoi sert le "Application.Volatile" ?
Merci.
Alain.
Function total_mensuel_poste(ByVal Plage_Date As Range, Plage_Montant As Range, Plage_Utilisation As Range, _
Mois As String, Annee As Integer, Utilisation As String) As Double
'Renvoie la somme des montants affectés pour une utlisation et un mois donnés.
'prend pour arguments les cellules de la colonne Date (ColA) montant (colB) et utilisation (colC)
'prend pour arguments les cellules où se trouvent le mois et l'utilisation cherchés
'les données à analyser se trouvent dans la feuille1
'les données mois, année et utilisation se trouvent dans la feuille3
'les résultats (l'appel de la fonction) se fait feuille3
Dim LeMois As Integer
Dim Somme As Double
Dim Cel As Range
Application.Volatile
LeMois = Month("1/" & Mois & Annee)
For Each Cel In Plage_Date
If Month(Cel) = LeMois And Plage_Utilisation.Cells(Cel.Row, 1) = Utilisation Then
Somme = Somme + Plage_Montant.Cells(Cel.Row, 1)
End If
Next Cel
total_mensuel_poste = Somme
End Function