VBA desautomatizar

Boa tarde.

Dias atrás encontrei esta macro bem interessante, pois ela cria aba com nome definido em célula, copia as informações para esta nova aba e reconhece abas que já existem. Mas como ela usa “Worksheet_Change” então ela roda “automaticamente” e eu

  1. gostaria retirar a condição atual (rodar quando os campos estiverem preenchidos) e usar um botão para rodá-la (ou “chamar” ela junto com outra macro)

  2. pelo que entendi, ela copia a linha “target”, mas eu gostaria de poder mudar a área a ser copiada, por exemplo: C3:I3.

Macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Y As Range, LR As Long
Dim plan As Worksheet, flg As Boolean
Dim nomePlan As String, i, j As Integer
If Target.Column > 7 Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Value = “” Then Exit Sub

Set Y = Range(Cells(Target.Row, 1), Cells(Target.Row, 7))
If Application.WorksheetFunction.CountA(Y) < 7 Then Exit Sub
nomePlan = Cells(Target.Row, 1).Value
Application.ScreenUpdating = False

For Each plan In Worksheets
    If plan.Name Like nomePlan Then flg = True: Exit For
Next
    If flg = True Then
        With Sheets(plan.Name)
            LR = .Cells(Rows.Count, 3).End(xlUp).Row
            Cells(Target.Row, 1).Resize(, 8).Copy
            .Cells(LR + 1, 1).PasteSpecial
        End With
    Else
        Sheets("Modelo").Copy After:=Sheets(1)
        With ActiveSheet
            .Name = nomePlan
            Cells(Target.Row, 1).Resize(, 8).Copy
            .Cells(1, 1).PasteSpecial
        End With
For i = 2 To Sheets.Count - 1
  For j = 2 To Sheets.Count - 2
    If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
        Sheets(j).Move After:=Sheets(j + 1)
    End If
  Next j
Next i
    End If

Application.CutCopyMode = False
Application.ScreenUpdating = True
Sheets(1).Activate
End Sub

Agradeço pela atenção.
Anderson