Add Formula SumIf Relative Range D = A*

M

mkerstei

I can't seem to be able to learn how to put macro formulas inside o
spreadsheet formulas! just a last bit of help and this project wil
finally be finished.

Right now I have Column D which is populated with names (i.e. A20004
B33343, etc.) Each name has number data in column F.

I need a macro that:
1. Goes to the last data entry for A, which varies by workbook.
2. Move 3 Rows below that and enters the name "A Article"
3. Moves 3 Columns to the right (Column F) and enters the formula
=Sumif(Column A Data, "=A*", Column F Data)
4. It will then move to the next column on the right and do the same
keeping Column A's data anchored.

This is a bit too complex for my beginner VBA status, any help would b
appreciated. The code I have so far is at the bottom, it should tak
care of objective 1 and 2. Thanks!

Range("d1").End(xlDown).Select
ActiveCell.Offset(rowoffset:=3, columnoffset:=0).Activate
ActiveCell.FormulaR1C1 = _
"A Article"
ActiveCell.Offset(rowoffset:=0, Columnoffset:=3).Activate
COLOR="Red"]ActiveCell.FormulaR1C1 = _
"=Sumif(" & Range("D1").End(xlDown) & ","=A*","
Range("F1").End.(xlDown) & ")"[/QUOTE]

Note: The code in red is INCORRECT and needs help
 
B

Bob Phillips

Note that these posts hit the public newsgroups, without colour, so it is
better to tell us where the problem is.

Why not just use

ActiveCell.FormulaR1C1 = "=Sumif(D:D,""A*"",F:F)"

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)
 
G

Guest

Sub eFG()
Dim rngD As Range, rngF As Range
Dim rng As Range
With Worksheets("Sheet1")
Set rngD = .Range(.Range("D1"), _
.Range("D1").End(xlDown))
End With
Set rng = rngD(rngD.Count)(4, 3)
rng.Offset(0,-2).Value = "A Article"
Set rngF = rngD.Offset(0, 2)
rng.Formula = "=Sumif(" & rngD.Address _
& ",""A*""," & _
rngF.Address & ")"
rng.Offset(0, 1).Formula = "=Sumif(" & _
rngD.Address & ",""A*""," & _
rngF.Offset(0, 1).Address & ")"

End Sub
 
G

Guest

Since he puts a label on the same row in D that begins with an A (A Article),
that could give a double count - it does for me if I enter or edit the label
after the formula is entered, but not if the label is entered before the
formula - seems a little flakey. <g>

--
Regards,
Tom Ogilvy




Bob Phillips said:
Note that these posts hit the public newsgroups, without colour, so it is
better to tell us where the problem is.

Why not just use

ActiveCell.FormulaR1C1 = "=Sumif(D:D,""A*"",F:F)"

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

mkerstei said:
I can't seem to be able to learn how to put macro formulas inside of
spreadsheet formulas! just a last bit of help and this project will
finally be finished.

Right now I have Column D which is populated with names (i.e. A20004,
B33343, etc.) Each name has number data in column F.

I need a macro that:
1. Goes to the last data entry for A, which varies by workbook.
2. Move 3 Rows below that and enters the name "A Article"
3. Moves 3 Columns to the right (Column F) and enters the formula
=Sumif(Column A Data, "=A*", Column F Data)
4. It will then move to the next column on the right and do the same,
keeping Column A's data anchored.

This is a bit too complex for my beginner VBA status, any help would be
appreciated. The code I have so far is at the bottom, it should take
care of objective 1 and 2. Thanks!

Range("d1").End(xlDown).Select
ActiveCell.Offset(rowoffset:=3, columnoffset:=0).Activate
ActiveCell.FormulaR1C1 = _
"A Article"
ActiveCell.Offset(rowoffset:=0, Columnoffset:=3).Activate
COLOR="Red"]ActiveCell.FormulaR1C1 = _
"=Sumif(" & Range("D1").End(xlDown) & ","=A*"," &
Range("F1").End.(xlDown) & ")"

Note: The code in red is INCORRECT and needs help.
 
M

mkerstei

Thanks, with just a tiny bit of editing I was able to get exactly what
needed. Again, thank you for all of your help
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top