Slot it in in the beginning, but as follows :
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A1:A10"), Target) Is Nothing Then Goto nexxt
'Your code here
nexxt:
Dim i As Long
If Target.Address(False, False) = "D10" Then
For i = 1 To Target.Value
Sheets(i + 4).Visible = True
Sheets(i + 4).Name = Range("D" & i + 11).Value
Next i
If i = 20 Then Exit Sub
For i = Target.Value + 1 To 20
Sheets(i + 4).Visible = False
Next i
ElseIf Not Intersect(Target, Range("D12:D31")) Is Nothing Then
Sheets(Target.Row - 7).Name = Target.Value
End If
End Sub
Bookmarks