View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Rowan Drummond[_3_] Rowan Drummond[_3_] is offline
external usenet poster
 
Posts: 414
Default Sum on Multipel sheets

I have revised your code a bit. My version determines the last used row
in column B by imitating the cell that would be selected if you clicked
in Cell B65536 and then hit Ctrl+UpArrow.

Sub Totals()
Dim eRow As Long
Dim i As Integer
For i = 1 To 3 'adjust as required. Currently first 3 sheets
With Sheets(i)
eRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
If eRow 2 Then
With .Cells(eRow, 2)
.FormulaR1C1 = "=Sum(R[-" & eRow - 2 & "]C:R[-1]C)"
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
End With
End With
.Cells(eRow, 1).Value = "Total"
Else
With .Range("B2")
.Value = 0
.NumberFormat = "0.00"
End With
End If
End With
Next i
End Sub

Hope this helps
Rowan

STEVEB wrote:
Hi,

I use the following code to find the last cell in column B and then sum
the total beneath the last row of data.

Dim firstcell%
Dim n%
Dim theOldTotalAddress%
Dim therow%

firstcell = 2

Sheets("sheet1").Select

Range("B" & firstcell).Select
Do Until IsEmpty(ActiveCell.Value)
n = n + 1
Range("B" & firstcell + n).Select
Loop


ActiveCell.FormulaR1C1 = "=SUM(R[-" & n & "]C:R[-1]C)"
therow = ActiveCell.Row

'Border
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
With Selection.Borders(xlEdgeTop)
LineStyle = xlContinuous
Weight = xlThin
ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
LineStyle = xlDouble
Weight = xlThick
ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone

'Total
Range("A" & therow).Select
ActiveCell.Formula = "Total"
End Sub

1st issue:
This works great when I sum just one sheet, however, when I try to sum
multiple sheets (I use three sheets), the sum on Sheet 2 will be
correct, however the placement of the total line will be incorrect.
For example if Sheet 1 has 5 rows, the total will be on Row 6 (This is
correct) on Sheet 2 there are 10 rows, the total should be on row 11,
however it is on row 16 with 5 blank rows(I assume it is counting the
Sheet 1 rows..but not adding the data because the total is correct)
Any suggestions?

2nd issue:
If there is no data on a particular sheet, the total is creating a
circular reference is summing B2:B65525. Is there a way to put 0.00 in
Cell b2 if no data?

Thanks for any help!