Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fonction Sommeprod dans Vba Erreur #valeur

frite295

XLDnaute Nouveau
Bonjour à tous,

Je bloque depuis 4 jours sur une fonction sommeprod que j'aimerais mettre en vba.

J'ai en effet des données à recuperer d"une feuille "bd" à retranscrire sur la feuille "revue".

Il y a trois arguments : le type, le lieu, l'année. J'ai donc mis ceci mais ma fonction de marche pas. J'ai une erreur #valeur dans la case correspondante...

Merci de votre aide

Code:
Sub retour()
'sur quels feuillets travaille-t-on?
Dim BD As Worksheet
Set BD = ActiveWorkbook.Sheets("bd")
Dim Revue As Worksheet
Set Revue = ActiveWorkbook.Sheets("revue")

'sur quels plages recupere-t-on les données?
With Sheets("BD")
Dim Flux, Reseau, Annee, Lieu, Nombre_de_flux As Range
Set Type = Range("A2").End(xlDown)
Set Annee = Range("E2").End(xlDown)
Set Lieu = Range("c2").End(xlDown)
Set nombre_dacte = Range("g2").End(xlDown)
End With

'calculs avec sommeproduct du nombre d'acte par type, année, lieu 
With Sheets("revue")
Revue.Cells(8, 4) = Application.Evaluate("=SumProduct(type=(""A""))*(Lieu=(""france""))*(Annee=(""2012"")),(nombre_dacte))"
End With
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Fonction Sommeprod dans Vba Erreur #valeur

Bonjour.
Ne pas confondre formule et expression.
Evaluate permet d'évaluer des expressions, pas des formules. Il ne faut pas de "=" devant.
Cordialement
 

frite295

XLDnaute Nouveau
Re : Fonction Sommeprod dans Vba Erreur #valeur

Merci de ta reponse mais même avec le "=" j'arrive au même message d'erreur. J'ai essayé avec "Application.Worksheet.function" mais là ça me bloque aussi.
 

Dranreb

XLDnaute Barbatruc
Re : Fonction Sommeprod dans Vba Erreur #valeur

Si sans le égal ça ne marche pas non plus essayez de le faire calculer par la formule dans votre cellule.
À quoi sert le With ?
À +
 

ralph45

XLDnaute Impliqué
Re : Fonction Sommeprod dans Vba Erreur #valeur

Bonjour à tous,

N'y aurait-il pas une parenthèse ouvrante manquante juste après SumProduct ?
SumProduct((type=(""A""))*...

Et n'y aurait-il pas des parenthèses en trop ?
SumProduct((type=(""A""))*...

De sorte que :
Code:
SumProduct((type=""A"")*...

A+
 

frite295

XLDnaute Nouveau
Re : Fonction Sommeprod dans Vba Erreur #valeur

Pour les parenthèses, j'ai vérifié et j'ai essayé sans mais ça revient au même.

Ensuite j'ai mis la formule dans la cellule (qui marche) pour la retranscrire sur vba :

Code:
Revue.Cells(5, 4) = Application.WorksheetFunction.SumProduct(("Volume!$A$2:$A$856"=""A"")*("Volume!$C$2:$C$856"=""france"")*("Volume!$E$2:$E$856"=2012),("Volume!$G$2:$G$856"))

Après ça, un message du debuggeur qui detecte un problème avec la zone ""écrits"".

Ca vient peut etre des matrices que j'ai déclaré, je ne comprend pas.

Merci
 

frite295

XLDnaute Nouveau
Re : Fonction Sommeprod dans Vba Erreur #valeur

C'est bon j'ai resolu le souci en passant par l'enregistreur de macro (enregistrer une macro-selection la formule-entrée) pour la recuperer sur vba.

Le code etait
Code:
Revue.Cells(5, 4).FormulaR1C1 = _
        "=SUMPRODUCT((Volume!R2C1:R856C1=RC[-2])*(Volume!R2C2:R856C2=RC[-3])*(Volume!R2C5:R856C5=R4C3)*(Volume!R2C3:R856C3=""France""),(Volume!R2C7:R856C7))"
 

Discussions similaires

Réponses
12
Affichages
253
Réponses
1
Affichages
177
Réponses
2
Affichages
271
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…