I reckon
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Sheet1.Name = Range("A1").Value
    End If
End Sub
if you meant to name Sheet1 after A1 on the data sheet, not A1 on Sheet1