XL 2013 SommeProd en mode Function

GADENSEB

XLDnaute Impliqué
Bonjour Le Forum
Pour le fichier suivant je souhaiterais faire des sommeprod en version fonction
mais j'ai un #Valeur ....

Code:
Function SumProd()
    Dim Ws As Worksheet
    'Définit une variable qui va représenter une cellule
    Dim Cell As Rang

For Each Cell In Ws.Range("B6:B10")  'cellule vide dans la colonne -2
Toto = "=SUMPRODUCT((LIGNE=RC[-2])*(FUTUR=""non"")*(BQ=""oui"")*(DEBITCREDIT))"
calcul = Toto
Next Cell
End Function

qqn aurait une idée ?
Bonne am
Seb
 

Pièces jointes

  • OPTIMISER LES SOMMEPROD - V0.xlsm
    26.9 KB · Affichages: 65

Dranreb

XLDnaute Barbatruc
Obtenu ceci :
upload_2016-12-16_13-28-8.png

Avec ce code :
VB:
Sub RapportSynthèse()
Dim Données As Collection, LIGNE As SsGroup, FUTUR As SsGroup, BQ As SsGroup, Détail, _
   TotG As Currency, TotFut As Currency, TotBQ As Currency, TotLig As Currency, T(1 To 500, 1 To 4), L As Long
Set Données = GroupOrg(Feuil2.[A2:N2], 10, 11, 9)
For Each FUTUR In Données
   L = L + 1
   T(L, 1) = "Futur=" & FUTUR.Id
   TotFut = 0
   For Each BQ In FUTUR.Contenu
      L = L + 1
      T(L, 2) = "BQ=" & BQ.Id
      TotBQ = 0
      For Each LIGNE In BQ.Contenu
         L = L + 1
         T(L, 3) = LIGNE.Id
         TotLig = 0
         For Each Détail In LIGNE.Contenu
            TotLig = TotLig + Détail(14): Next Détail
         T(L, 4) = TotLig:
         TotBQ = TotBQ + TotLig: Next LIGNE
      If BQ.Count > 1 Then L = L + 1: T(L, 2) = "    — Total BQ=" & BQ.Id: T(L, 4) = TotBQ
      TotFut = TotFut + TotBQ: Next BQ
   If FUTUR.Count > 1 Then L = L + 1: T(L, 1) = "    — Total Futur=" & FUTUR.Id: T(L, 4) = TotFut
   TotG = TotG + TotFut: Next FUTUR
L = L + 1: T(L, 1) = "Total général": T(L, 4) = TotG
Feuil1.[B3].Resize(500, 4).Value = T
End Sub
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 211
Membres
103 158
dernier inscrit
laufin