check and/or create sheet "xxx"

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
 
F

Fred

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
 
B

Bernie Deitrick

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
 
G

Guest

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





.
 
F

Fred

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
 
Top