У вас зацикливается обработчик событий при изменении ячеек листов. Надо отключать обработку событий на время работы макроса.
А ограничить область работы совсем просто.
В модуле листа1 пишем[vba]Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:E16]) Is Nothing Then
Application.EnableEvents = False
Sheets("Лист2").Cells(Target.Row, Target.Column) = Target.Value
Application.EnableEvents = True
End If
End Sub
[/vba]а в модуле листа2[vba]Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1:E16]) Is Nothing Then
Application.EnableEvents = False
Sheets("Лист1").Cells(Target.Row, Target.Column) = Target.Value
Application.EnableEvents = True
End If
End Sub
[/vba]