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

Moyenne sur plage de données variables

1 réponse
Avatar
plexus
Bonjour,
Je cherche =E0 faire une moyenne sur une plage de donn=E9es variables.
La plage est variables car par macro je viens ins=E8rer de nouvelles
donn=E9es par insertion de lignes sous une ent=EAte situ=E9e au milieu de
feuille.

J'ai d'abord utiliser la fonction excel : Moyenne (nomplage) ou
nomplage est un nom d=E9fini par la formule :
=3DDECALER('feuille'1!$E$13;;;NBVAL('feuille'1!$E:$E)-1)
Le probl=E8me est qu'=E0 l'insertion d'une nouvelle donn=E9e, Excel
modifie automatiquement la formule d'une ligne et je me retrouve avec
nomplage =3DDECALER(feuille1!$E$14;;;NBVAL(feuille1!$E$E)-1)
Donc pas de mise =E0 jour de la moyenne.

Je me suis donc tourn=E9 vers VBA et la petite macro suivante :
sub a()
Dim E13 As Range
Dim L As Long

Set E13 =3D Sheets("feuille1").Range("E13")
L =3D E13.End(xlDown).Row

R =3D Sheets("feuille1").Range("E13:E" & L)
Sheets("feuille1").Range("C4").Value =3D WorksheetFunction.Average(R)

end sub()

J'=E9tais assez satisfait du r=E9sultat jusqu'=E0 ce que je test avec des
cases vides entre certaines donn=E9es.
Le probl=E8me est que l'astuce End(xlDown) s'arr=E8te =E0 la premi=E8re
case vide rencontr=E9e m=EAme si sur les lignes en dessous de cette case
vide il y a des valeurs. Donc en cas d'erreur lors de l'insertion des
nouvelles donn=E9es cette solution ne fonctionnerait pas.

1/ Y a t'il une alternative simple =E0 End(xlDown) dans ce cas ?

2/ Quelle solution privil=E9gier ? VBA ou une solution Excel ?

3/ Pour la mise =E0 jour apr=E8s insertion des donn=E9es, vaut-il mieux
passer par une sub situ=E9e dans mon module que j'appelle juste apr=E8s
l'insertion ou par une sub d'=E9v=E9nement change situ=E9e dans la feuille
?

Merci de votre aide et de vos conseils (les questions 2 et 3 =E9tant =E0
titre indicatif afin d'all=E8ger le classeur qui a d=E9j=E0 beaucoup de
proc=E8dures)

1 réponse

Avatar
plexus
Bonjour,

Merci pour ta proposition, mais cela me donne le même résultat
lorsqu'il y a des blancs dans les données.

Je vais tester en metant la ligne d'entête comme origine de la zone
variable.

Ce qui fonctionne également pas trop mal c'est la sub qui attribu la
formule moyenne(decaler(etc..)) à ma cellule.

Par contre une idée sur les questions 2 et 3 et s'il y a des solutions
meilleurs que d'autres ?