Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calcul d'une MOYENNE en VBA (avec parfois des valeurs d'erreurs #N/A)

2 réponses
Avatar
RENAUD Eric
Bonjour,

J'ai une moyenne à calculer sur une plage de 12 valeurs maxi (Exemple de A1
à A12).
Le problème est qu'il arrive qu'une des cellules contienne une valeur
d'erreur.


Admettons que la cellule A7 soit avec une valeur d'erreur.
Manuellement je ferai :
=MOYENNE(A1:A6;A8:A12)

Mais en VBA ?
Je peux faire une boucle pour savoir quelles sont
les cellules avec des valeurs correctes mais comment
mettre uniquement les valeurs (adresses) correctes dans la formule qui suit
:

ActiveCell.FormulaR1C1 = _
"=AVERAGE(R1C1,R2C1,R3C1,R4C1,R5C1,R6C1,R7C1,R8C1,R9C1,R10C1,R11C1,R12C1)"

D'avance merci

2 réponses

Avatar
garnote
Salut Éric,

Quelque chose du genre, peut-être :
Sub Moyenne()
Range("C10").FormulaArray = "=AVERAGE(IF(ISERROR(R1C1:R20C1),"""",R1C1:R20C1))"
End Sub

Serge


"RENAUD Eric" <erenaud(retirerceci)@fr.fm> a écrit dans le message de news:
Bonjour,

J'ai une moyenne à calculer sur une plage de 12 valeurs maxi (Exemple de A1 à A12).
Le problème est qu'il arrive qu'une des cellules contienne une valeur d'erreur.


Admettons que la cellule A7 soit avec une valeur d'erreur.
Manuellement je ferai :
=MOYENNE(A1:A6;A8:A12)

Mais en VBA ?
Je peux faire une boucle pour savoir quelles sont
les cellules avec des valeurs correctes mais comment
mettre uniquement les valeurs (adresses) correctes dans la formule qui suit :

ActiveCell.FormulaR1C1 = _
"=AVERAGE(R1C1,R2C1,R3C1,R4C1,R5C1,R6C1,R7C1,R8C1,R9C1,R10C1,R11C1,R12C1)"

D'avance merci




Avatar
RENAUD Eric
Merci cela semble bien fonctionner.
A+
Eric
"garnote" a écrit dans le message de news:
%23cyN$
Salut Éric,

Quelque chose du genre, peut-être :
Sub Moyenne()
Range("C10").FormulaArray =
"=AVERAGE(IF(ISERROR(R1C1:R20C1),"""",R1C1:R20C1))"
End Sub

Serge


"RENAUD Eric" <erenaud(retirerceci)@fr.fm> a écrit dans le message de
news:
Bonjour,

J'ai une moyenne à calculer sur une plage de 12 valeurs maxi (Exemple de
A1 à A12).
Le problème est qu'il arrive qu'une des cellules contienne une valeur
d'erreur.


Admettons que la cellule A7 soit avec une valeur d'erreur.
Manuellement je ferai :
=MOYENNE(A1:A6;A8:A12)

Mais en VBA ?
Je peux faire une boucle pour savoir quelles sont
les cellules avec des valeurs correctes mais comment
mettre uniquement les valeurs (adresses) correctes dans la formule qui
suit :

ActiveCell.FormulaR1C1 = _

"=AVERAGE(R1C1,R2C1,R3C1,R4C1,R5C1,R6C1,R7C1,R8C1,R9C1,R10C1,R11C1,R12C1)"

D'avance merci