Problème SOMME.SI.ENS avec plusieurs intervalles

Bonjour,

Je n'arrive pas à effectuer =somme.si.ens avec deux conditions qui sont: si compris entre 311 110 et 326 110 ou entre 391 110 et 392 610.

Voici mon code VBA:

With Worksheets("Budget")
.[B28].Formula = "=SUMIFS(base!E:E, base!$AC:$AC, "">=""&311110, base!$AC:$AC, ""<=""&326110, base!$AC:$AC, "">=""&391110, base!$AC:$AC, ""<=""&392610)"
.[B28:M28].FillRight
End With

Qu'est ce qui ne va pas dans ma formule pour que celle-ci ne donne que 0 ?

1 2

Voici la même formule avec un seul intervalle et qui fonctionne:

5

Merci d'avance,

Léandre

Bonjour,

Si vous souhaitez faire un OU dans un SOMME.SI.ENS il faut faire une SOMME de SOMME.SI.ENS ou un SOMMEPROD donc en partant sur votre base :

With Worksheets("Budget")
    .[B28].Formula = "=SUM(SUMIFS(base!E:E, base!$AC:$AC, "">=""&311110, base!$AC:$AC, ""<=""&326110), SUMIFS(base!E:E, base!$AC:$AC, "">=""&391110, base!$AC:$AC, ""<=""&392610))"
    .[B28:M28].FillRight
End With

Cdlt,

Merci beaucoup !!

Re

Et dans le cas où j'aurai un intervalle ou plusieurs et une égalité comme par exemple:

">=331 120"; "<=371 000" et "=395 510"

J'ai essayé mais cela ne fonctionne pas.

Merci d'avance,

Léandre

6

Bonjour,

En cas d'égalité il n'est pas nécessaire de préciser le "=". Replacez ""=""&395 510" par 395 510.

Cdlt,

Re,

ça ne fonctionne pas.

Merci d'avance,

7 8

Bonjour,

Chez moi cela fonctionne avec la modification :

Sub FORM()
With Worksheets("Budget")
    .[B29].Formula = "=SUM(SUMIFS(base!E:E, base!$AC:$AC, "">=""&331120, base!$AC:$AC, ""<=""&371000), SUMIFS(base!E:E, base!$AC:$AC, 395510))"
    .[B29:M29].FillRight
End With
End Sub

Cependant comme vous n'avez qu'un critère essayez avec un SOMME.SI :

Sub FORM()
With Worksheets("Budget")
    .[B29].Formula = "=SUM(SUMIFS(base!E:E, base!$AC:$AC, "">=""&331120, base!$AC:$AC, ""<=""&371000), SUMIF(base!$AC:$AC, 395510, base!E:E))"
    .[B29:M29].FillRight
End With
End Sub

Cdlt,

ça fonctionne, merci beaucoup pour votre aide !

Re bonjour,

Sur la même formule, si je veux faire la somme si plusieurs égalités, dois-je tout ré écrire à chaque fois comme ça:

.[B48].Formula = "=SUM(SUMIFS(base!E:E, base!$AC:$AC, 401000), SUMIFS(base!E:E, base!$AC:$AC, 403000), SUMIFS(base!E:E, base!$AC:$AC, 408100), SUMIFS(base!E:E, base!$AC:$AC, 511331))"

ou il y a moyen de faire plus court type:

SUMIFS(base!E:E, base!$AC:$AC, 511331, 403000, 408100)

merci d'avance,

Léandre

Bonjour,

Une alternative un peu plus courte en passant par SOMMEPROD :

Sub FORM()
With Worksheets("Budget")
    .[B29].Formula = "=SUMPRODUCT(((base!$AC:$AC=511331)+(base!$AC:$AC=403000)+(base!$AC:$AC=408100))*(base!E:E))"
    .[B29:M29].FillRight
End With
End Sub

Cdlt,

Rechercher des sujets similaires à "probleme somme ens intervalles"