Solved

would like to creat a relatively easy macro in excell

Posted on 2013-12-31
1
351 Views
Last Modified: 2014-01-29
i have 5 columns of numbers listed in excell

would like to create a macro that gets the count of numbers in the first column

the remaining columns, i would like to calculate the average of each column

tried to record a macro to do this many times and it didnt work. One of the problems it wouldnt work was because the number of column entries will vary from spreadsheet to spreadsheet. The macro I created kept the column count the same.

If this doesnt explain the problem well enough, i can send a file
0
Comment
Question by:radrick60
1 Comment
 
LVL 9

Accepted Solution

by:
dustock earned 500 total points
ID: 39748594
With the description you gave I tried to come up with a solution.  It may not be the best way to do it, but it seemed to work for my testing.

You didn't say what you wanted to do with the count and the averages so I just set this to put that data on the last row of each line with bold text and a pink cell color with your values

Go to the Developer Tab and click Visual Basic, double click "ThisWorkbook" and past the following code.  Then try to run the "Calculate" macro and see if you get the desired results.

Also in the future, please add Microsoft Excel to the Topics portion so that the Excel Experts can assist.

Dim cAverage As Double

Sub Calculate()
  'LastRow for column A
  ALastRow = Sheets(1).Cells(Sheets(1).Rows.Count, "A").End(xlUp).Row
  
  Dim rRng As Range
  'If you have a header row change to A1 to A2
  Set rRng = Range("A1:A" & ALastRow)
  
  Sheets(1).Cells(ALastRow + 1, "A").Value = ALastRow
  'Set font to bold
  Sheets(1).Cells(ALastRow + 1, "A").Font.Bold = True
  'Set cell color
  Sheets(1).Cells(ALastRow + 1, "A").Interior.ColorIndex = 22
  
  'For Columns B to E
  For i = 2 To 5
  'Last Row for column i
    LastRow = Sheets(1).Cells(Sheets(1).Rows.Count, i).End(xlUp).Row
        CellAverage (Sheets(1).Range(Cells(1, i), Cells(LastRow, i)))
        Sheets(1).Cells(LastRow + 1, i).Value = cAverage
        'Set font to bold
        Sheets(1).Cells(LastRow + 1, i).Font.Bold = True
        'Set cell color
        Sheets(1).Cells(LastRow + 1, i).Interior.ColorIndex = 22
    Next i
End Sub

Sub CellAverage(rng As Range)
    cAverage = 0
    cAverage = Application.WorksheetFunction.Average(rng)
End Sub

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Computer crashes on daily bases need help to find the cusses 24 92
mac maintenance 6 34
iPhone v Android phone 7 30
gpupdate /force to all workstations 4 18
Detailed instructions on how to install an Access add-in in recent versions of Office and Windows (with screen shots)
A Bare Metal Image backup allows for the restore of an entire system to a similar or dissimilar hardware. They are highly useful for migrations and disaster recovery. Bare Metal Image backups support Full and Incremental backups. Differential backup…
In this Micro Tutorial viewers will learn how to use Boot Corrector from Paragon Rescue Kit Free to identify and fix the boot problems of Windows 7/8/2012R2 etc. As an example is used Windows 2012R2 which lost its active partition flag (often happen…
This Micro Tutorial will give you a basic overview of Windows DVD Burner through its features and interface. This will be demonstrated using Windows 7 operating system.

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now