Probléme écriture SumProduct

Bonjour,

Ci-dessous mon code.

Private Sub MONTANT()
Dim NoDerLigne As Integer    
Dim ChoixFeuille As Worksheet 'Choix de la feuille    
Dim NoLIGNE As Integer  

Consolider_feuilles 'macro effectuant un filtre dont le résultat est inscrit dans la feuille"Résultat"

Set ChoixFeuille = Worksheets("Résultat")      

'dernière ligne de l'onglet base
NoDerLigne = ChoixFeuille.Range("G" & Rows.Count).End(xlUp).Row 

For NoLIGNE = 2 To NoDerLigne
If ChoixFeuille.Range("Q" & NoLIGNE) <> ComboBox1.Value Then
ChoixFeuille.Rows(NoLIGNE).Clear
End If
Next NoLIGNE

Controls("TextBox199").Value = -(Application.WorksheetFunction.Sum(Range("C2:C" & NoDerLigne)))
Controls("TextBox199") = Format(Controls("TextBox199"), "### ### ##0")

For NoLIGNE = 2 To NoDerLigne
Controls("TextBox204").Value = -(Application.WorksheetFunction.SumProduct((Worksheets("SINISTRE").Range("A1:A" & NoDerLigne = ChoixFeuille.Range("P" & NoLIGNE))), (ChoixFeuille.Range("P" & NoLIGNE))))
Controls("TextBox204") = Format(Controls("TextBox204"), "### ### ##0")
Next

Set ChoixFeuille = Nothing

End Sub

Il semble qu'il y a une erreur dans:

Controls("TextBox204").Value = -(Application.WorksheetFunction.SumProduct((Worksheets("SINISTRE").Range("A1:A" & NoDerLigne = ChoixFeuille.Range("P" & NoLIGNE))), (ChoixFeuille.Range("P" & NoLIGNE))))

Je ne sais pas s'il s'agit d'un problème de syntaxe ou si cela vient des variables d'une feuille, appliquées à une autre feuille

Quelqu'un peut-il m'aider?

Cordialement

Bonjour,

Je n'ai pas l'habitude d'utiliser les fonctions de calcul dans VBA; tout ce que je peux faire dans Excel directement, je le fais.

Néanmoins, la fonction SOMMEPROD demande des matrices de même longueur. Est-ce bien le cas ici ?

ChoixFeuille.Range("P" & NoLIGNE) est une valeur unique alors que le premier terme est un ensemble de "NoDerLigne " valeurs.

Bonjour,

Je viens de corriger l'erreur.

Controls("TextBox204").Value = -(Application.WorksheetFunction.SumProduct((ChoixFeuille.Range("P" & NoLIGNE = Worksheets("SINISTRE").Range("A1:A" & NoDerLigne))), (ChoixFeuille.Range("C1:C" & NoDerLigne))))

J'ai comme message d'erreur:

"Imcompatibilité de type"

Une idée ?

Il nous faudrait dans ce cas avoir au moins partiellement le fichier excel, les colonnes A et C notamment ...

Rechercher des sujets similaires à "probleme ecriture sumproduct"