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

XL 2016 Utilisation de SumIfs sur une plage qui contient des #VALEUR!

mxdktm

XLDnaute Nouveau
Bonjour,
Je souhaite transposer la formule Excel suivante en vba :

=SOMME.SI.ENS(Matrix!C$1:C$10;Matrix!$A$1:$A$10;"Crit1";Matrix!$B$1:$B$10;"Crit2";Matrix!C$1:C$10;"<>#VALEUR!")

Le dernier critère est ajouté car la colonne C est issue de calculs qui peuvent ne pas tous aboutir.

J'ai tenté :

VB:
Dim total As Integer
Dim sum As Range
Dim criteria1 As Range
Dim criteria2 As Range

Set criteria1 = Worksheets("Matrix").Range("A1:A10")
Set criteria2 = Worksheets("Matrix").Range("B1:B10")
Set sum = Worksheets("Matrix").Range("C1:C10")

total = Application.WorksheetFunction.SumIfs(sum, criteria1, "Crit1", criteria2, "Crit2", sum, "<>#VALEUR!")

Mais dès qu'il y a une cellule contenant "#VALEUR!" dans ma colonne C, j'obtiens l'erreur :
"Erreur d'exécution '1004' : Impossible de lire la propriété SumIfs de la classe WorksheetFunction".

J'ai fouillé partout sur le net et je suis surprise que le problème ne soit pas massivement partagé ! Ou alors j'ai raté quelque chose ?
Quelqu'un aurait une idée ?
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Mxfktm, et bienvenu sur XLD,
Le VBA ne parle qu'anglais, essayez :
VB:
total = Application.WorksheetFunction.SumIfs(sum, criteria1, [G3], criteria2, [G4], sum, "<>#Value!")
voir PJ
 

Pièces jointes

  • Classeur1.xlsm
    15.7 KB · Affichages: 0

mxdktm

XLDnaute Nouveau
Bonjour Mxfktm, et bienvenu sur XLD,
Le VBA ne parle qu'anglais, essayez :
VB:
total = Application.WorksheetFunction.SumIfs(sum, criteria1, [G3], criteria2, [G4], sum, "<>#Value!")
voir PJ
Merci beaucoup pour votre aide ! Ca marche !
Ca ne m'avait même pas effleuré l'esprit parce que pour moi SumIfs interprétait le critère comme un string, c'est-à-dire littéralement ce qui se trouvait dans la cellule (alors que bien sûr que non !).
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…