Nice to hear that your one problem has disappeared.
No1 is simple. It was not asked for as far as I can see.
No2 needs some more explaining in order for me to understand it
No3 should work as in below changes.
Sub nirvehex()
Dim r1, r2, lr1 As Long, lr2 As Long, lc2 As Long, ws1 As Worksheet, ws2 As Worksheet, j As Long
r1 = Array(1, 2, 3, 4, 5, 11)
r2 = Array(1, 2, 4, 3, 6, 5)
Set ws1 = Sheets("Sheet2") '<---- Change as required
Set ws2 = Sheets("Sheet3") '<---- Change as required
lr1 = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row
lr2 = ws2.Cells(ws2.Rows.Count, 1).End(xlUp).Row
lc2 = ws2.UsedRange.Columns.Count
For j = LBound(r2) To UBound(r2)
ws2.Cells(lr2 + 1, r2(j)).Value = ws1.Cells(lr1, r1(j))
Next j
With ws2
.Cells(lr2, 7).Copy .Cells(lr2 + 1, 7)
.Range(.Cells(lr2, 1), .Cells(lr2, lc2)).Copy
.Range(.Cells(lr2 + 1, 1), .Cells(lr2 + 1, lc2)) _
.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End With
End Sub