Modifier formule en VBA pour lignes différentes
Fermé
Eminini2017
-
19 avril 2017 à 16:07
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 20 avril 2017 à 08:13
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 20 avril 2017 à 08:13
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
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
19 avril 2017 à 18:50
19 avril 2017 à 18:50
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.
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
20 avril 2017 à 08:13
20 avril 2017 à 08:13
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