Safely Deleting Worksheets Using the DeleteSheet Function : Worksheet « Excel « VBA / Excel / Access / Word

Safely Deleting Worksheets Using the DeleteSheet Function

Function DeleteSheet(ws As Worksheet, bQuiet As Boolean) As Boolean 
    Dim bDeleted As Boolean 

    On Error GoTo ErrHandler 

    bDeleted = False  

    If CountVisibleSheets(ws.Parent) > 1 Then 
        If bQuiet Then Application.DisplayAlerts = False 

        bDeleted = ws.Parent.Worksheets(ws.Name).Delete 
    End If 

    Application.DisplayAlerts = True 
    DeleteSheet = bDeleted 
    Exit Function 
    bDeleted = False 
    Resume ExitPoint 
End Function 
Function CountVisibleSheets(wb As Workbook) As Integer 
    Dim nSheetIndex As Integer 
    Dim nCount As Integer 
    nCount = 0 
    For nSheetIndex = 1 To wb.Sheets.Count 
        If wb.Sheets(nSheetIndex).Visible = xlSheetVisible Then 
            nCount = nCount + 1 
        End If 
    CountVisibleSheets = nCount 
End Function 


Related examples in the same category

1.Select Entire Sheet
2.Get Worksheets count in a Workbook
3.Get Worksheet name
4.changes the value of the Name property of the first worksheet in the first workbook of the Excel application:
5.Gives indexes of sheets
6.Inserts a new sheet after each sheet
7.Loop through all worksheets in workbook and reset values in a specific range on each sheet.
8.Group sheets together
9.Reference worksheet across worksheet
10.Determines if a given worksheet name exists in a workbook
11.Activate last sheet
12.Activate first sheet
13.Reference a worksheet from a workbook
14.Using a Function to Check for the Existence of a Code Name
15.Using the Parent Property to Obtain a Reference to an Object's Parent Object