I'm guessing that when that runs, thee is only one visible sheet and a WB needs to have at least one sheet visible

Unhide that other sheet first, and then hide this one, or Add a 'Billboard' sheet (like 'This is my wonderful workbook' with pictures) and show that before hiding the rest

                Case "Abdi"
                    w.Protect ("u1pass")
                    w.Visible = False   ---------> this is where the error is
                    bSaveIt = True
                Case "Anisa"
                    w.Protect ("u2pass")
                    w.Visible = False ​---------> this is where the error is
                    bSaveIt = True