Solved

Excel AutoSum

Posted on 2013-01-16
9
468 Views
Last Modified: 2013-01-16
Hello,
I have a workBook with multiple sheets (varies) ,
I'm trying to Auto Sum Columns (M,N,P,Q), Starting Raw M2,N2,P2,Q2.
And the summary be at the end of the columns (M,N,P,Q).

Do the same on all sheets.
The number of Raws varies.

I wonder if there is a vb code that can do this.

Any help is appreciated.
0
Comment
Question by:W.E.B
  • 5
  • 4
9 Comments
 
LVL 26

Accepted Solution

by:
redmondb earned 250 total points
ID: 38785506
Hi, Wass_QA.

Please see attached. If the code finds that the last used cell in column M is simply the total for that column then it assumes that this sheet has already be done and so it skips it. Sheet1 is like this.

The code is...
Option Explicit

Sub Auto_Total()
Dim xSheet    As Worksheet
Dim xLast_row As Long
Dim xCol      As Variant

For Each xSheet In ThisWorkbook.Sheets
    If xSheet.UsedRange.Rows.Count < 0 Then Debug.Print "?!"
    xLast_row = xSheet.[A1].SpecialCells(xlLastCell).Row
    If xSheet.Range("M" & xLast_row).Formula = "=SUM(M2:M" & xLast_row - 1 & ")" Then
        MsgBox ("Total found for """ & xSheet.Name & """ - sheet bypassed.")
    Else
        For Each xCol In Array("M", "N", "P", "Q")
            xSheet.Range(xCol & xLast_row + 1).Formula = Replace("=SUM(|2:|" & xLast_row & ")", "|", xCol)
        Next
    End If
Next

End Sub

Open in new window

Regards,
Brian.Auto-Total.xls
0
 

Author Comment

by:W.E.B
ID: 38785534
Hello redmondb,
Thanks again for your help,

The code is working well on all sheets except on sheet 1

thanks,
0
 
LVL 26

Expert Comment

by:redmondb
ID: 38785544
Wass_QA,

The code is working well on all sheets except on sheet 1
Nope - please see my first post! Would you like something different?

Thanks,
Brian.
0
 

Author Comment

by:W.E.B
ID: 38785559
Hello,
it is not giving me any totals on sheet1,
All other sheets Total is working great.

Thanks,
0
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.

 
LVL 26

Expert Comment

by:redmondb
ID: 38785574
Wass_QA,

This was explained in my first post! What do you want me to do when the macro finds that there are already totals on the last line? If I simply create a new set of totals then they'll be completely wrong - giving double the correct answer!

Instead of doing something that I know is wrong, I bypass the sheet. Again, what would you prefer me to do?

(BTW, the version above copes badly with a sheet with no data. I have a new version to handle this but I'll wait for your answer to this post before sending it.)

Thanks,
Brian.
0
 

Author Comment

by:W.E.B
ID: 38785589
ok, sorry,
I figured it out,
The Total was coming up way down the column.
I had some characters I didnt delete.

thank you very much.
0
 

Author Closing Comment

by:W.E.B
ID: 38785594
Thank you very much.
0
 
LVL 26

Expert Comment

by:redmondb
ID: 38785604
Wass_QA,

The attached handles sheets with no data. The code is...
Option Explicit

Sub Auto_Total()
Dim xSheet    As Worksheet
Dim xLast_row As Long
Dim xCol      As Variant

For Each xSheet In ThisWorkbook.Sheets
    If xSheet.UsedRange.Rows.Count < 0 Then Debug.Print "?!"
    xLast_row = xSheet.[A1].SpecialCells(xlLastCell).Row
    If xLast_row < 2 Then
        MsgBox ("No data in """ & xSheet.Name & """ - sheet bypassed.")
    Else
        If xSheet.Range("M" & xLast_row).Formula = "=SUM(M2:M" & xLast_row - 1 & ")" Then
            MsgBox ("Total found for """ & xSheet.Name & """ - sheet bypassed.")
        Else
            For Each xCol In Array("M", "N", "P", "Q")
                xSheet.Range(xCol & xLast_row + 1).Formula = Replace("=SUM(|2:|" & xLast_row & ")", "|", xCol)
            Next
        End If
    End If
Next

End Sub

Open in new window

Regards,
Brian.Auto-Total-V2.xls
0
 
LVL 26

Expert Comment

by:redmondb
ID: 38785623
Thanks, Wass_QA, but please be sure to use the version in my last post!

As I may have mentioned to you before, I keep an eye on "my" closed questions for at least a couple of weeks, so if you have any further issues with this code please feel free to post here.

Regards,
Brian.
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

Sparklines have been introduced with Excel 2010 and are a useful tool for creating small in-cell charts, used for example in dashboards. Excel 2010 offers three different types of Sparklines: Line, Column and Win/Loss. What it does not offer is a…
Introduction This Article briefly covers methods of calculating the NPV and IRR variants in Excel as well as the limitations in calculating and interpreting IRR results. Paraphrasing Richard Shockley, author of my favourite finance reference tex…
This Micro Tutorial will demonstrate the scrolling table in Microsoft Excel using the INDEX function.
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

895 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

16 Experts available now in Live!

Get 1:1 Help Now