ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Could Someone Explain this Code (https://www.excelbanter.com/excel-programming/386544-could-someone-explain-code.html)

Sean

Could Someone Explain this Code
 
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


merjet

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

Hth,
Merjet


Sean

Could Someone Explain this Code
 
On Mar 30, 6:04 pm, "merjet" wrote:
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



merjet

Could Someone Explain this Code
 
Change: rng.Resize(10, 5).Value = MyValues

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

Hth,
Merjet



All times are GMT +1. The time now is 10:17 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com