VBA : SumProduct

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
 

Raja

XLDnaute Accro
Re : VBA : SumProduct

Bonjour,

Je ne comprends pas ce que tu veux faire avec ton code. Il y a sûrement des façons plus simples à y arriver. Mais, fais juste un essai. Remplace ton code comme suivant :

Code:
RECHERCHEVV = WorksheetFunction.SumProduct((col1 = critere1) * (col2 = critere2) * (col3))

Peut être que ça marchera.
 

garth_algar

XLDnaute Junior
Re : VBA : SumProduct

Bonjour,

J'ai finalement réussi en modifiant la dernière ligne ainsi :

RECHERCHEVV = Evaluate("SumProduct((" & col1.Address & "=" & critere1 & ") * (" & col2.Address & "=" & critere2 & ") * (" & col3.Address & "))")

Cependant la fonction ne marche qui si je tape la formule dans la feuille où se trouve la plage.
Est-ce que quelqu'un saurait me dire ce qu'il faut changer ou ajouter pour pouvoir utiliser une plage dans n'importe quel feuille dans n'importe classeur ?
Merci d'avance
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal