View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Per Jessen Per Jessen is offline
external usenet poster
 
Posts: 1,533
Default Add and summarize function

Hi Joe

The previous macro didn't create a list of unique code names in the output
sheet.

Try this:

Sub AAA()
With Sheets("Data")
LastRow = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
Set CodeRange = .Range("A2:A" & LastRow)
Set SumRange = .Range("B2:B" & LastRow)
End With

Sheets("data").Activate
Range("A1", "A" & LastRow).Select
Selection.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Selection.Copy Sheets("output").Range("A1")
ActiveSheet.ShowAllData

Set CriteriaRange = Sheets("Output").Range("A2")
For r = 2 To Sheets("Output").Range("A2").End(xlDown).Row
Total = WorksheetFunction.SumIf(CodeRange, CriteriaRange, SumRange)
CriteriaRange.Offset(0, 1) = Total
Set CriteriaRange = CriteriaRange.Offset(1, 0)
Next
End Sub

Regards,
Per

"joecrabtree" skrev i meddelelsen
...
On Mar 13, 2:12 am, Per Jessen wrote:
Hi Joe

Look at this:

With Sheets("Data")
LastRow = Sheets("Data").Range("A" & Rows.Count).End(xlUp).row
Set CodeRange = .Range("A2:A" & LastRow)
Set SumRange = .Range("B2:B" & LastRow)
End With
Set CriteriaRange = Sheets("Output").Range("A2")

Total = WorksheetFunction.SumIf(CodeRange, CriteriaRange, SumRange)
Sheets("Output").Range("B2") = Total

Regards,
Per

On 12 Mar., 12:20, joecrabtree wrote:

On Mar 12, 10:08 am, "PerJessen" wrote:


Hi


Why not use the SumIf function. Insert the formula below in B2 on
output
sheet, and enter codes (XXX, BBB ...) in A2 and down. Then copy down
the
formula as required.


=SUMIF(DATA!$A$2:$A$8,A2,DATA!$B$2:$B$8)


With VBA I would use the same function:


Set CodeRange = Sheets("Data").Range("A2:A8")
Set CriteriaRange = Sheets("Output").Range("A2")
Set SumRange = Sheets("Data").Range("B2:B8")
Total = WorksheetFunction.SumIf(CodeRange, CriteriaRange, SumRange)
Sheets("Output").Range("B2") = Total


Regards,
Per


"joecrabtree" skrev i
...


All,


I have a worksheet called 'data' in which I have two colounms of
data
shown below:


CODE VALUE
XXX 1
XXX 22
XXX 21
XXX 45
BBB 64
NNN 54
AAA 64


Using VBA how can I add up all the XXX codes and produce an output
total in a worksheet labelled 'output'?


For example in this case the worksheet 'output' would display


XXX 89


Thanks for your help,


Regards


Joe Crabtree


Thanks. And if the range was undefined, i.e if the list was longer
than A2: A8 and could vary depending on the data set used. How would I
incorporate that?


Thanks


Joe- Skjul tekst i anførselstegn -


- Vis tekst i anførselstegn -


When I run this code, I just get an output of zero in the output
worksheet, with no code names. Any ideas?

Thanks

Joe