Could Someone Explain this Code

S

Sean

Could someone explain the code below? I know it takes the values that
are in Report E6;E9 and E12 and posts them on a sheet called Database,
but where I'm unsure is that it posts these on the row below the last
entries, but I don't know which Column on the Database sheet controls
this. What I wish to do is modify the particular column to action
"Post the entries on the row below the last value entered in Column F
on the Database sheet.

Thanks


Sub Database_Post()
Dim r As Long, c As Long, rng As Range
Dim MyValues(9, 5), MyHeaders(2), MyColumns
Application.ScreenUpdating = False

Set rng = Sheets("Database").Cells(65536, "D").End(xlUp).Offset(1,
0)
MyColumns = Array("A", "C", "H", "K", "M")
For r = 0 To 8
For c = 0 To UBound(MyColumns)
MyValues(r, c) = _
Sheets("Report").Cells(18 + 5 * r, MyColumns(c)).Value
Next c
Next r
With Sheets("Report")
MyHeaders(0) = .Range("E6").Value
MyHeaders(1) = .Range("E9").Value
MyHeaders(2) = .Range("E12").Value
End With
rng.Resize(10, 5).Value = MyValues
On Error Resume Next
rng.Offset(0, -3).Resize(rng.Parent.Cells(65536, "D") _
.End(xlUp).Row - rng.Row + 1, 3) = MyHeaders

Sheets("Database").Select
Columns("A:H").Select
Columns("A:H").EntireColumn.AutoFit

Sort

Range("A1").Select
Sheets("Report").Select
Range("A1").Select

End Sub
 
M

merjet

It puts MyHeaders based on rng, which is earlier set in Column D.
So change Cells(65536, "D") to Cells(65536, "F").

Hth,
Merjet
 
S

Sean

It puts MyHeaders based on rng, which is earlier set in Column D.
So change Cells(65536, "D") to Cells(65536, "F").

Hth,
Merjet

Thanks Merjet, I tried that and my values that I expected to be posted
in Column D ended up in Column H. Then I changed this rng.Offset(0,
-3).Resize(rng.Parent.Cells(65536, "F") _ TO rng.Offset(0,
-5).Resize(rng.Parent.Cells(65536, "F") _
But then the first 3 Columns posted correctly i.e. A; B and C but the
remaining Columns were ncorrect offset by 2 columns i.e. Column D data
is in Column F etc
 
M

merjet

Change: rng.Resize(10, 5).Value = MyValues

To: rng.Offset(0, -2).Resize(10, 5).Value = MyValues

Hth,
Merjet
 

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