No problem, struggling is the best way to learn; that and Google
Here's a skeleton macro
Option Explicit
'1. Add new blank worksheet ("Output')
'2. Add column headers
'3. Dim output line colunter = 2
'4. Find last row number in 'Input'
'5. Dim input line counter
'6. Loop from 1 to LastRow
Sub Example()
Dim iOut As Long, iIn As Long, iLastIn As Long
Dim wsIn As Worksheet, wsOut As Worksheet
'delete old Out
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("Output").Delete
Application.DisplayAlerts = True
On Error GoTo 0
'add new Output
Worksheets.Add
ActiveSheet.Name = "Output"
'sets and inits
Set wsIn = Worksheets("Input")
Set wsOut = Worksheets("Output")
iOut = 1
iLastIn = wsIn.UsedRange.Rows.Count
'output column headers
With wsOut
.Cells(iOut, 1).Value = "Company"
.Cells(iOut, 2).Value = "Register"
.Cells(iOut, 3).Value = "Order"
'etc
End With
With wsIn
For iIn = 2 To iLastIn
If .Cells(iIn, 1).Value = "Company" Then
iOut = iOut + 1
wsOut.Cells(iOut, 1).Value = .Cells(iIn, 2).Value
End If
If .Cells(iIn, 1).Value = "Register" Then
wsOut.Cells(iOut, 2).Value = .Cells(iIn, 2).Value
End If
'etc.
' 2 on one line
If .Cells(iIn, 1).Value = "Misc. Name" Then
wsOut.Cells(iOut, 8).Value = .Cells(iIn, 2).Value
If .Cells(iIn, 6).Value = "Code:" Then
wsOut.Cells(iOut, 9).Value = .Cells(iIn, 7).Value
End If
End If
'etc
Next iIn
End With
End Sub