Une fa�on d'�crire la fonction personnalis�e � copier
dans un module STANDARD.
� partir d'une proc�dure, pour appeler la fonction :
'------------------------------------------------
Sub test2()
Dim LaDate As Variant ' Laisser ce "type" pour cette variable
LaDate = CDate("09/12/2013")
'Les param�tres de la fonction personnalis�e
'1 - Nom de la feuille o� sont les donn�es
'2 - Lettre de la colonne � additionner
'3 - Lettre de la colonne servant de crit�re
'4 - Crit�re : cela peut �tre une date ou une chaine de
caract�re d�butant par le chiffre que l'on inscrit
MsgBox Credit("Ecritures", "C", "A", LaDate)
MsgBox Credit("Ecritures", "C", "D", 7)
End Sub
'------------------------------------------------
Si on veut appeler cette fonction � partir d'une cellule :
Voici la syntaxe :
A3 est l'adresse d'une cellule contenant la date crit�re
Excel doit reconnaitre le contenu de cette cellule comme �tant une date.
On ne peut pas inscrire : "09/12/2013" (trop long � expliquer pourquoi)
=Credit("Ecritures"; "C"; "A"; A3)
OU
=Credit("Ecritures"; "C"; "D"; 7)
'------------------------------------------------
Function Credit(NomFeuille As String, _
ColonneAdd As String, ColonneCritere As String, _
Crit As Variant, Optional DateMin As Date, _
Optional DateMax As Date) As Double
Dim DerLig As Long
Dim PlgSomme As String
Dim PlgCrit As String
Dim Formule As String
With Worksheets(NomFeuille)
DerLig = .Cells(65536, ColonneAdd).End(xlUp).Row
PlgSomme = .Name & "!" & .Range(.Cells(1, ColonneAdd), _
.Cells(DerLig, ColonneAdd)).Address
PlgCrit = .Name & "!" & .Range(.Cells(1, ColonneCritere), _
.Cells(DerLig, ColonneCritere)).Address
End With
If IsDate(Crit) Then Crit = """>" & CLng(Crit) & _
"""" Else: Crit = """=" & CStr(Crit) & "*"""
Formule = "=SUMIFS(" & PlgSomme & "," & PlgCrit & "," & Crit & ")"
Credit = Evaluate(Formule)
End Function
'------------------------------------------------
MichD
---------------------------------------------------------------