Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Check if a worksheet exists

Hi all

I am looking for a way to get VBA to check if a worksheet exists using a
named range as the source and if the sheet does not exist then add the
required sheet name... the only examples I have been able to find use the
following code
If SheetEsists("sheetname") = True Then.

However, this does not appear to be a known function within Excel 2000.....
Is there another way or am I missing something?

Regards and Thanks

Mort_kombat
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 180
Default Check if a worksheet exists

Function SheetExists(ByRef SheetName As String) As Boolean
Dim ws As Worksheet
SheetExists = False
For Each ws In Worksheets
If ws.Name = SheetName Then SheetExists = True
Next
End Function
HTH. --Bruce

"Mort_Komabt" wrote:

Hi all

I am looking for a way to get VBA to check if a worksheet exists using a
named range as the source and if the sheet does not exist then add the
required sheet name... the only examples I have been able to find use the
following code
If SheetEsists("sheetname") = True Then.

However, this does not appear to be a known function within Excel 2000.....
Is there another way or am I missing something?

Regards and Thanks

Mort_kombat

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default Check if a worksheet exists

Thanks for that..... It works great

"bpeltzer" wrote:

Function SheetExists(ByRef SheetName As String) As Boolean
Dim ws As Worksheet
SheetExists = False
For Each ws In Worksheets
If ws.Name = SheetName Then SheetExists = True
Next
End Function
HTH. --Bruce

"Mort_Komabt" wrote:

Hi all

I am looking for a way to get VBA to check if a worksheet exists using a
named range as the source and if the sheet does not exist then add the
required sheet name... the only examples I have been able to find use the
following code
If SheetEsists("sheetname") = True Then.

However, this does not appear to be a known function within Excel 2000.....
Is there another way or am I missing something?

Regards and Thanks

Mort_kombat

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Check if a worksheet exists

Hi Mort,

You could add a new sheet automatically if the value in your named range
changes. Try this in the worksheet module of the changing cell.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim sName As String
Dim bShtAdded As Boolean

If Target(1).Address = Range("myName").Address Then
sName = Range("myName").Value
If Len(sName) 1 Then
On Error Resume Next
Set ws = Worksheets(sName)
On Error GoTo errH
If ws Is Nothing Then
Set ws = Worksheets.Add
bShtAdded = True
ws.Name = sName
End If
End If
End If

Exit Sub
errH:
If bShtAdded Then
MsgBox "Cannot name new sheet : " & sName
End If
End Sub

If your named range is a formla cell, amend the above to check for changes
in whatever value cell changes the result in your formula, eg your formula
=A!

If Target(1).Address = "$A$1" Then

If you only want to add a new sheet by calling a normal macro,

Sub MyMacro()
' all the code as above but delete
If Target(1).Address = Range("myName").Address Then

end if

End Sub

Regards,
Peter T

"Mort_Komabt" wrote in message
...
Hi all

I am looking for a way to get VBA to check if a worksheet exists using a
named range as the source and if the sheet does not exist then add the
required sheet name... the only examples I have been able to find use the
following code
If SheetEsists("sheetname") = True Then.

However, this does not appear to be a known function within Excel

2000.....
Is there another way or am I missing something?

Regards and Thanks

Mort_kombat



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Check if a worksheet exists

More efficiently


'-----------------------------------------------------------------
Function SheetExists(Sh As String, _
Optional wb As Workbook) As Boolean
'-----------------------------------------------------------------
Dim oWs As Worksheet
If wb Is Nothing Then Set wb = ActiveWorkbook
On Error Resume Next
SheetExists = CBool(Not wb.Worksheets(Sh) Is Nothing)
On Error GoTo 0
End Function



--

HTH

RP
(remove nothere from the email address if mailing direct)


"Mort_Komabt" wrote in message
...
Thanks for that..... It works great

"bpeltzer" wrote:

Function SheetExists(ByRef SheetName As String) As Boolean
Dim ws As Worksheet
SheetExists = False
For Each ws In Worksheets
If ws.Name = SheetName Then SheetExists = True
Next
End Function
HTH. --Bruce

"Mort_Komabt" wrote:

Hi all

I am looking for a way to get VBA to check if a worksheet exists using

a
named range as the source and if the sheet does not exist then add the
required sheet name... the only examples I have been able to find use

the
following code
If SheetEsists("sheetname") = True Then.

However, this does not appear to be a known function within Excel

2000.....
Is there another way or am I missing something?

Regards and Thanks

Mort_kombat



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
check if worksheet exists joeeng Excel Worksheet Functions 3 September 7th 05 06:49 PM
check if worksheet exists Judy Ward Excel Programming 2 August 10th 05 10:39 PM
How to check if a worksheet exists in worksheet collection Raghunandan Excel Programming 2 July 19th 04 06:55 AM
Check whether a worksheet exists already clui[_6_] Excel Programming 2 December 3rd 03 05:19 PM
check if worksheet exists Craig Wilks Excel Programming 2 July 10th 03 04:07 AM


All times are GMT +1. The time now is 09:58 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"