SumProduct VBA mutli feuil

Maivas

XLDnaute Junior
Bonjour à tous,

Voici de quoi faire chauffer un peu vos méninges par ce temps hivernal.
Je voudrais calculer via un sommeprod l’ensemble des données de plusieurs feuilles d’un même classeur. C’est donné étant les absences remplies dans un calendrier.
Le nombre de feuille est variable puisque je dois ajouter une nouvelle feuille tous les 6 mois.
Selon moi, deux boucles imbriquées semble être la solution par contre je pense que je rencontre un problème sur la syntaxe du sumproduct si cher à mon cœur.

Voici un extrait du code :
Code:
    'Je définis un plage de Nom
    Set Plage = Range("E11:E20")
   
    For Each Cellule In Plage
        
    'Je vide ma variable AValider
    AValider = 0
    
        'Je boucle sur les feuilles répondant à 2 critères
        For Each Sh In Worksheets
            If Sh.Name Like Target & "|*" And Cellule.Offset(0, -1) <> "" Then
            
            'Je définis mes plages
            'Mois
            Set Plage1 = Worksheets(Sh.Name).Range("$F$12:$GG$12")
            'Nom
            Set Plage2 = Worksheets(Sh.Name).Range("$D$20:$D$40")
            'Les données des absences > [ALL],[AM],[PM]
            Set Plage3 = Worksheets(Sh.Name).Range("$F$20:$GG$40")
            
            'SommeProd - essai seulement avec [ALL]
            AValider = Evaluate("sumproduct((" & Plage1 & " = " & """ & Cellule & """) * (" & Plage2 & " = " & """ & Cellule.Offset(0, -1) & """) * (" & Plag3 & "=" & """[ALL])""" & ") * 1)")
            
            'Je remplis ma cellule avec le résultat
            Cellule.Offset(0, 2).Value = AValider
            
            End If
        Next Sh

    Next Cellule
    Set Plage = Nothing

Merci
 

Jam

XLDnaute Accro
Re : SumProduct VBA mutli feuil

Salut Maivas,

En quoi as-tu déclaré Plage1 et Plage2 ?
Quelle est ton erreur ?
As-tu utilisé le débogage pour voir à quoi ressemble ta formule ?

Regarde Plage1, les références sont différentes par rapport à Plage2 et Plage3 => $12 vs $20

Bon courage
 

Maivas

XLDnaute Junior
Re : SumProduct VBA mutli feuil

Bonjour,

Les plages sont correctes (En tous cas ça fonctionne avec le bon vieux Sommeprod)
=SOMMEPROD(('2013|01 01-30 06'!$F$12:$GD$12='TICS Compar. (2)'!E11)*('2013|01 01-30 06'!$D$20:$D$40='TICS Compar. (2)'!D11)*('2013|01 01-30 06'!$F$20:$GD$40="[ALL]")*1)

Erreur du débogage= Incompatibilité de type
 

Discussions similaires

Statistiques des forums

Discussions
312 378
Messages
2 087 760
Membres
103 661
dernier inscrit
fcleves