A voir également:
- Modifier formule en VBA pour lignes différentes
- Modifier dns - Guide
- Formule si et - Guide
- Modifier liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Excel mise en forme conditionnelle formule - Guide
3 réponses
Bonjour
Si j'ai bien compris votre formule vous voulez faire la moyenne de la colonne "S" si toutes les conditions sont réunies. Pourquoi ne pas utiliser la formule suivante qui me semble plus simple:
=SIERREUR(MOYENNE.SI.ENS(S2014645A!$S$5:$S$8490;S2014645A!$MO$5:$MO$8490;1;S2014645A!$H$5:$H$8490;1;S2014645A!$E$5:$E$8490;"m";S2014645A!$G$5:$G$8490;">=40";S2014645A!$G$5:$G$8490;"<50");"")
ce qui donne en VBA:
"=IFERROR(AVERAGEIFS(S2014645A!R5C19:R8490C19,S2014645A!R5C353:R8490C353,1,S2014645A!R5C8:R8490C8,1,S2014645A!R5C5:R8490C5,""m"",S2014645A!R5C7:R8490C7,"">=40"",S2014645A!R5C7:R8490C7,""<50""),"""")"
A adapter selon vos besoins.
Cdlt
Si j'ai bien compris votre formule vous voulez faire la moyenne de la colonne "S" si toutes les conditions sont réunies. Pourquoi ne pas utiliser la formule suivante qui me semble plus simple:
=SIERREUR(MOYENNE.SI.ENS(S2014645A!$S$5:$S$8490;S2014645A!$MO$5:$MO$8490;1;S2014645A!$H$5:$H$8490;1;S2014645A!$E$5:$E$8490;"m";S2014645A!$G$5:$G$8490;">=40";S2014645A!$G$5:$G$8490;"<50");"")
ce qui donne en VBA:
"=IFERROR(AVERAGEIFS(S2014645A!R5C19:R8490C19,S2014645A!R5C353:R8490C353,1,S2014645A!R5C8:R8490C8,1,S2014645A!R5C5:R8490C5,""m"",S2014645A!R5C7:R8490C7,"">=40"",S2014645A!R5C7:R8490C7,""<50""),"""")"
A adapter selon vos besoins.
Cdlt
OUi en effet ça revient au même, mais là j'ai pour 100 000 lignes différentes.. je ne peux pas commencer à les changer une par une avec ta nouvelle formule. Je voudrais simplement rajouter aux formules déjà existantes mes parties soulignées exactement à ces endroit.
Bonjour
Voilà pour le principe, j'ai conservé votre formule, mais je ne suis pas convaincu qu'elle fonctionne.
Cdlt
maVal = "S2014645A!$H$5:$H$8490=1" Formule = "=AVERAGE(IF(S2014645A!R5C353:R8490C353=1,IF(" & MaVar & ",IF(S2014645A!R5C5:R8490C5=""m"",IF(S2014645A!R5C7:R8490C7>=40,IF(S2014645A!R5C7:R8490C7<50,S2014645A!R5C19:R8490C19,""""),""""),""""),""""),""""))" Set sht = ThisWorkbook.Worksheets("MÉD RMB") With sht For i = 1 To 49 .Cells(i, 5).FormulaR1C1 = Formule Next i End With
Voilà pour le principe, j'ai conservé votre formule, mais je ne suis pas convaincu qu'elle fonctionne.
Cdlt