Moyenne de colonnes avec VBA
Résolu
Lils_Bis
Messages postés
65
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
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
-
bonjour
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...-
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 -
-
-
-
Bonjour,
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?
-
-
salut 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;