2013-06-13 6 views
1

J'ai un certain nombre de colonnes (dans le fichier Excel) qui représentent les mois de l'année; chaque colonne a un certain nombre d'enregistrements et j'aimerais pouvoir exécuter une macro qui insère une cellule dans la dernière rangée de chaque colonne avec un moyen. La première cellule de chaque colonne est un en-tête, je dois donc inclure des cellules de la ligne 2 jusqu'au dernier enregistrement de la colonne. Le nombre de colonnes et de lignes sera différent chaque fois que j'utiliserai la macro. J'apprécierais beaucoup votre aide. Merci!Macro VBA à insérer Moyenne dans la dernière ligne de chaque colonne avec plages dynamiques

+0

Ceci a été répondu ici. http://stackoverflow.com/questions/14887210/excel-vba-calculate-average-of-a-column –

Répondre

2

Voici une solution qui fonctionnera hors de la boîte pour vous. Il prend la moyenne de chaque colonne, en commençant à la rangée 2.

Sub AverageColumn() 
    Dim count As Integer 
    Dim sum As Integer 
    Dim lastCol As Integer 
    lastCol = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.count).Column 
    For c = 1 To lastCol 
     sum = 0 
     count = 0 
     ActiveSheet.Cells(2, c).Select 
     Do While ActiveCell.Value <> "" 
      sum = sum + ActiveCell.Value 
      count = count + 1 
      ActiveCell.Offset(1, 0).Activate 
     Loop 
     ActiveCell.Value = sum/count 
    Next c 
End Sub 
+0

Merci beaucoup !!! Cela fonctionne parfaitement! – Aquarelle

+0

@ user2482997 Bienvenue dans StackOverflow. Je suis content de pouvoir t'aider! Veuillez accepter ma réponse en cliquant sur la coche à côté de celle-ci. :) – Jack

Questions connexes