Option Explicit
Private bClosing As Boolean
Private WindsCount As Long
Private Const TARGET_SHEET_NAME = "Master Sheet" '<== change sheet name as required
Private Sub Workbook_WindowDeactivate(ByVal wn As Window)
If bClosing Then bClosing = False: Exit Sub
WindsCount = Me.Windows.Count
If ActiveSheet.Name = TARGET_SHEET_NAME And WindsCount > 1 And Not ManyMasterSheetsActive Then
Application.OnTime Now, Me.CodeName & ".CloseNow"
End If
End Sub
Private Sub CloseNow()
If Me.Windows.Count < WindsCount Then
If ActiveSheet.Name <> TARGET_SHEET_NAME Then
Me.Close
End If
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
bClosing = True
End Sub
Private Function ManyMasterSheetsActive() As Boolean
Dim wnd As Window
Dim lCount As Long
For Each wnd In Me.Windows
If wnd.ActiveSheet.Name = TARGET_SHEET_NAME Then
lCount = lCount + 1
If lCount > 1 Then
ManyMasterSheetsActive = True
Exit For
End If
End If
Next wnd
End Function