Private Sub MoveData(sh As String)
' Pass the sheet name you want to move to as the parameter ("sh")
Dim ws As Worksheet
Dim lr As Long
Dim r As Long
Dim lc As Long
Dim nr As Long
' Capture active sheet
Set ws = ActiveSheet
Application.ScreenUpdating = False
' Find last row in column with data
lr = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' Loop through all rows in sheet backwards up to row 4
For r = lr To 4 Step -1
' Check to see if cell A matches sought out value
If ws.Cells(r, "A").Value = sh Then
' Find last column with data in row
lc = ws.Cells(r, ws.Columns.Count).End(xlToLeft).Column
' Find next available row on destination sheet, using column B
nr = Sheets(sh).Cells(Sheets(sh).Rows.Count, "B").End(xlUp).Row + 1
' Copy row from columns B to end to destination sheet
ws.Range(Cells(r, 2), Cells(r, lc)).Copy Sheets(sh).Cells(nr, "B")
' Delete row on source sheet
ws.Rows(r).Delete
End If
Next r
Application.ScreenUpdating = True
End Sub