Wes Zalewski

asked on

# SUBTOTAL in Excel using VBA

Hello,

Trying to enter a formula

Tried the following, (and more), and it doesn't work.

' Range("O" & lRowDump + 1, "O" & lRowDump + 1).Formula = "=SUBTOTAL(109,[BookCreditAmount])"

' Selection.FormulaR1C1 = "=SUBTOTAL(109,[BookCreditAmount])"

' Range("N" & lRowDump + 1, "N" & lRowDump + 1).Formula = "=SUBTOTAL(109,[BookDebitAmount])"

' Range("N" & lRowDump + 1, "N" & lRowDump + 1).Select

' Selection.FormulaR1C1 = "=SUBTOTAL(109,[BookDebitAmount])"

' ActiveCell.Formula = "=SUBTOTAL(109,[BookCreditAmount])"

Your help is appreciated.

Thank you.

Trying to enter a formula

**=SUBTOTAL(109,[BookCreditA**mount])[/u]) , using VBA.Tried the following, (and more), and it doesn't work.

' Range("O" & lRowDump + 1, "O" & lRowDump + 1).Formula = "=SUBTOTAL(109,[BookCredit

' Selection.FormulaR1C1 = "=SUBTOTAL(109,[BookCredit

' Range("N" & lRowDump + 1, "N" & lRowDump + 1).Formula = "=SUBTOTAL(109,[BookDebitA

' Range("N" & lRowDump + 1, "N" & lRowDump + 1).Select

' Selection.FormulaR1C1 = "=SUBTOTAL(109,[BookDebitA

' ActiveCell.Formula = "=SUBTOTAL(109,[BookCredit

Your help is appreciated.

Thank you.

ASKER CERTIFIED SOLUTION

membership

This solution is only available to members.

To access this solution, you must be a member of Experts Exchange.

Wouldn't it be simpler to use an Excel Table with the Totals feature, no VBA required.

Overview of Excel tables

Overview of Excel tables

ASKER

Hello,

No it wouldn't be simpler.

I should provide more information. Sorry.

The data comes through ODBC from a SQL database view per accounting period. The [BookCreditAmount] is the header name of the column in the SQL query 'dump'. There is [BookDebitAmount] as well.

I don't know how to remove this column naming by ODBC from Excel 2013 / 2016. Honestly it drives me bananas.

So, the formula has to be entered each time the data is refreshed by changes in accounting period, company or account number.

I'll try Norie's and Neeraj's suggestion since this is a 'table'.

I let Excel to enter the sum formula on top of the column and this is what it gave me:

=SUM(Table_Query_from_SQLForEpic34[BookCreditAmount])

Do you know if the query (table name) is hard coded into to spreadsheet? I hope the name will not change.

But I guess I can insert a name each time right after refresh.

Thank you.

No it wouldn't be simpler.

I should provide more information. Sorry.

The data comes through ODBC from a SQL database view per accounting period. The [BookCreditAmount] is the header name of the column in the SQL query 'dump'. There is [BookDebitAmount] as well.

I don't know how to remove this column naming by ODBC from Excel 2013 / 2016. Honestly it drives me bananas.

So, the formula has to be entered each time the data is refreshed by changes in accounting period, company or account number.

I'll try Norie's and Neeraj's suggestion since this is a 'table'.

I let Excel to enter the sum formula on top of the column and this is what it gave me:

=SUM(Table_Query_from_SQLF

Do you know if the query (table name) is hard coded into to spreadsheet? I hope the name will not change.

But I guess I can insert a name each time right after refresh.

Thank you.

ASKER

Thank you. It worked.

You don't give points anymore?

You don't give points anymore?

You're welcome!

Yes, the points system has been changed. Now you get a slider to award the bonus points.

Yes, the points system has been changed. Now you get a slider to award the bonus points.

This adds subtotals to a Table(ListObject). When I use it remembers the previous settings for the Table totals.

`ActiveSheet.ListObjects(1).ShowTotals = True`

ASKER

Thank you Roy, I will try that later. For now this task is done.

I added a few lines to delete the formula at the end, and enter it again with each new dump.

It works and they can reconcile transactions.

I added a few lines to delete the formula at the end, and enter it again with each new dump.

It works and they can reconcile transactions.

If it's a field/column in a table then you would also need the table name.