В модуль листа 1:
Code
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Sheets("Лист1").Range("A1") = 2 Then
Sheets("Лист2").Visible = False
Sheets("Лист3").Visible = True
ElseIf Sheets("Лист1").Range("A1") = 3 Then
Sheets("Лист3").Visible = False
Sheets("Лист2").Visible = True
ElseIf Sheets("Лист1").Range("A1") = 1 Then
Sheets("Лист3").Visible = True
Sheets("Лист2").Visible = True
End If
Sheets("Лист1").Select
Application.ScreenUpdating = true
End Sub