Code if sheet has been created

Hi I have some quick code questions:

1- Is there a vba code that checks if a specific sheet exists? (has been created)
2- Also, I need a vba code that overrides a warning msg to delete a sheet:
like the 'Microsoft excel msg: Are you sure you wish to delete this sheet?'

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

You can test for sheet existence as below

to remove the warning on sheet deletion use

Application.DisplayAlerts = False
prior to the deletion, remember to set it back to
Application.DisplayAlerts = True

when finished



Dim ws As Worksheet
On Error Resume Next
Set ws = Sheets("mytest")
On Error GoTo 0
If ws Is Nothing Then MsgBox "sheet does not exist"

Open in new window


sheetexists = 0
For Each x In ActiveWorkbook.Worksheets
If x.Name = "Sheet 1" Then sheetexists = 1
If sheetexists = 1 Then
MsgBox ("SHeet exists")
MsgBox ("SHeet does not exist")
End If

for your first question:

Function SheetExists(SheetName As String) As Boolean
' returns TRUE if the sheet exists in the active workbook
SheetExists = False
On Error GoTo NotaSheet
If Len(Sheets(SheetName).Name) > 0 Then
SheetExists = True
Exit Function
End If
End Function
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Supress messages by
Application.showalerts = False

and Check the sheet by

Dim loSheet As Object

On Error Resume Next

Set loSheet = ThisWorkbook.Worksheets("Sheet4")

If loSheet = "" Then
    MsgBox ("Sheet Not Found")
End If

For your second question, there is an answer on the Ozgrid forum

Pls refresh before posting.


hugoohtaAuthor Commented:
The code that I need to check if a sheet exists is not for display purposes...
so the user doesnt need to know
but its more when the programme is running following a button press
and I need to create a sheet 'List'
but once the button is pressed again I need it to have a different name
like 'list2' or something
thats why I need to check if it has been created or not

thanks for the help!
Yes, just use the suggestions above and add some code to act accordingly:


if sheetexists=1 then mysheetname=mysheetname & "1"

to get it to create a slightly different name.  The detail will depend on how you want the renaming to happen.
Try something like this  

For each loSheet in thisworkbook.Worksheets
          IF LoSheet.Name = "List" then
                    llSheetFound = True
Thisworkbook.Worksheets.Add After:=Worksheets(Workbooks.Count)
If  llSheetFound then
     ActiveSheet.Name = "List2"
    ActiveSheet.Name = "List"

Open in new window

Chris BottomleySoftware Quality Lead EngineerCommented:
To name a created sheet allowing for previous versions you can use something like the followng

Sub namesheet()
Dim ws As Worksheet
Dim sheetstring As String
Dim sheetnum As Integer
    Set ws = ThisWorkbook.Worksheets.Add
    On Error Resume Next
    sheetstring = "Template"
    ws.Name = sheetstring
    Do While ws.Name <> sheetstring
        sheetnum = sheetnum + 1
        sheetstring = "Template (" & sheetnum & ")"
        ws.Name = sheetstring
    On Error GoTo 0
End Sub

Open in new window


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Applications

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.