Moyenne de colonnes avec VBA
Résolu
Bonjour,
Tout d'abord, je travaille sous VBA grâce à EXCEL.
J'ai un problème je n'arrive pas à faire de simple moyenne sur des colonnes.
En effet, je vous présente de manière synthétique mon jeu de données :
A B
1 4
5 6
4 3
3 2
J'ai A dans la cellule A1 et B dans A2. Ainsi je voudrais faire apparaitre mes moyennes sous cette forme à partir de la cellule A4
A B
MOY MOY
HELP ! Ca me débloquerait grandement pour la suite de mon étude...
MERCI A TOU(TE)S D'AVANCE !
Tout d'abord, je travaille sous VBA grâce à EXCEL.
J'ai un problème je n'arrive pas à faire de simple moyenne sur des colonnes.
En effet, je vous présente de manière synthétique mon jeu de données :
A B
1 4
5 6
4 3
3 2
J'ai A dans la cellule A1 et B dans A2. Ainsi je voudrais faire apparaitre mes moyennes sous cette forme à partir de la cellule A4
A B
MOY MOY
HELP ! Ca me débloquerait grandement pour la suite de mon étude...
MERCI A TOU(TE)S D'AVANCE !
3 réponses
-
Contributeurbonjour
J'ai A dans la cellule A1 et B dans A2
t'es sûr car vu ce que tu présentes ?....
Si moynne colonne AMsgBox Application.Average(Range("A1:A17"))Michel -
Serait-il possible de le faire sous forme de boucles car j'ai 8 moyennes à faire sur mes 8 premières colonnes ?
Du genre quelque chose comme
For NbCol = 1 to 8
Afficher la moyenne dans la ligne 2 en partant de la colonne 11 jusque la colonne 19
Next NbCol
Pardon de ma naïveté, mais je suis un bébé sur VBA...-
Contributeur
Option Explicit
'----------------------------
Sub moyenner()
Dim derlig As Long, Cptr As Byte
Application.ScreenUpdating = False
derlig = Range("A2:H10000").Find(what:="*", searchdirection:=xlPrevious).Row
For Cptr = 1 To 8
Cells(2, Cptr + 8) = Application.Average(Cells(2, Cptr), Cells(derlig, Cptr))
Next
End Sub -
@michel_mVotre code me donne les moyennes par ligne pour en l'occurrence les 8 premières. Or, je souhaiterais faire des moyennes pour chacune de mes 8 colonnes :
A B C D E F G H
et afficher les résultats dans les colonnes :
K L M N O P Q R -
Contributeur
-
@michel_mMerci d'avoir passé du temps pour m'aider. C'est très gentil de votre part, mais je revenais vers vous pour vous spécifier que le code que vous m'avez gracieusement donné ne fonctionne pas comme je le souhaiterais.
Cordialement -
Modérateur@Lils_BisBonjour,
Excusez l'incruste mais...
Vous dites :
Or, je souhaiterais faire des moyennes pour chacune de mes 8 colonnes :
A B C D E F G H
C'est exactement ce que fait le code donné.
Décortiquons...For Cptr = 1 To 8 Cells(2, Cptr + 8) = Application.Average(Cells(2, Cptr), Cells(derlig, Cptr))
For Cptr = 1 To 8 ==> boucle de de 1 à 8
Pour 1 :
Cells(2, Cptr + 8) = Application.Average(Cells(2, Cptr), Cells(derlig, Cptr))
signifie :
Cellule I2 = Moyenne(A2:Adrlig)
Pour 2 :
Cells(2, Cptr + 8) = Application.Average(Cells(2, Cptr), Cells(derlig, Cptr))
signifie :
Cellule J2 = Moyenne(B2:Bdrlig)
Ce qui correpond à ton souhait non?
-
-
Contributeursalut frank
il a un truc à améliorer;
le cas où une colonne est vide
c'est fait, mais vu l'attitude de lilis_bis, j'abandonne le suivi;