check and/or create sheet "xxx"

  • Thread starter Thread starter Tom
  • Start date Start date
T

Tom

Hi,

I want to check if there is a sheet named "xxx".
If there is not I want to create sheet "xxx", if there
is : nothing has to be done

How can I do this in a Marco ?

Thx
Tom
 
Hi !

The foloowing code tries to activate sheet "xxx". If it does not axist an
error is returned (Err.Number <> 0) and a new sheet is added after the last
sheet and renamed to "xxx"

Sub CheckSheet()


On Error Resume Next
Sheets("xxx").Activate
If Err.Number <> 0 Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "xxx"
End If

End Sub

Good Luck
 
Tom,

Dim myName As String

On Error GoTo MakeSheet
myName = Worksheets("xxx").Name
GoTo AlreadyThere

MakeSheet:
Worksheets.Add.Name = "xxx"
MsgBox "I added that sheet"

AlreadyThere:
'Other Code

HTH,
Bernie
MS Excel MVP
 
Can the error message be avoid ?
-----Original Message-----
Hi !

The foloowing code tries to activate sheet "xxx". If it does not axist an
error is returned (Err.Number <> 0) and a new sheet is added after the last
sheet and renamed to "xxx"

Sub CheckSheet()


On Error Resume Next
Sheets("xxx").Activate
If Err.Number <> 0 Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "xxx"
End If

End Sub

Good Luck





.
 
What do you mean ?
You don't get an error message using this code.

If you don't want to use the error object, you could also use the following
code:

Sub CheckSheet2()

Dim sh As Worksheet
Dim Fnd As Boolean

Fnd = False

For Each sh In ActiveWorkbook.Sheets
If sh.Name = "xxx" Then Fnd = True
Debug.Print sh.Name
Next sh

If Fnd = False Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "xxx"
End If

End Sub

Good Luck
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top