garth_algar
XLDnaute Junior
Bonjour,
Je souhaiterai utiliser l'équivalent du SOMMEPROD d'Excel en VBA, apparemment ce serait SumProduct, mais il n'y a pas de fichier d'aide. J'ai donc utilsé une syntaxe équivalente à celle du sommeprod, mais ça ne doit pas être la bonne. Voici ma fonction :
Function RECHERCHEVV(critere1 As Variant, critere2 As Variant, plage As Range, n_col_crit2 As Integer, n_col_rech As Integer) As Variant
Dim col1 As Range
Dim col2 As Range
Dim col3 As Range
Dim numcol1 As Integer
numcol1 = plage.Column
Set col1 = Application.Intersect(Columns(numcol1), plage)
Set col2 = Application.Intersect(Columns(numcol1 + n_col_crit2 - 1), plage)
Set col3 = Application.Intersect(Columns(numcol1 + n_col_rech - 1), plage)
RECHERCHEVV = Application.SumProduct((col1 = critere1) * (col2 = critere2) * (col3))
J'obtiens un #Valeur lorsque je l'utilise, et si j'enlève le "Application." j'ai une erreur de complilation : sub ou fonction non définie et le dernier col3 est surligné.
Est-ce que quelqu'un repère mon(mes) erreur(s) ?
Merci d'avance
Je souhaiterai utiliser l'équivalent du SOMMEPROD d'Excel en VBA, apparemment ce serait SumProduct, mais il n'y a pas de fichier d'aide. J'ai donc utilsé une syntaxe équivalente à celle du sommeprod, mais ça ne doit pas être la bonne. Voici ma fonction :
Function RECHERCHEVV(critere1 As Variant, critere2 As Variant, plage As Range, n_col_crit2 As Integer, n_col_rech As Integer) As Variant
Dim col1 As Range
Dim col2 As Range
Dim col3 As Range
Dim numcol1 As Integer
numcol1 = plage.Column
Set col1 = Application.Intersect(Columns(numcol1), plage)
Set col2 = Application.Intersect(Columns(numcol1 + n_col_crit2 - 1), plage)
Set col3 = Application.Intersect(Columns(numcol1 + n_col_rech - 1), plage)
RECHERCHEVV = Application.SumProduct((col1 = critere1) * (col2 = critere2) * (col3))
J'obtiens un #Valeur lorsque je l'utilise, et si j'enlève le "Application." j'ai une erreur de complilation : sub ou fonction non définie et le dernier col3 est surligné.
Est-ce que quelqu'un repère mon(mes) erreur(s) ?
Merci d'avance