ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   search for worksheet, insert new if doesn't exist (https://www.excelbanter.com/excel-programming/359466-search-worksheet-insert-new-if-doesnt-exist.html)

cereldine[_19_]

search for worksheet, insert new if doesn't exist
 

Im opening up a workbook and then selecting a worksheet based on
string variable like so (wsI is worksheet variable, sYear is searc
criteria)

Set wsI = Sheets(sYear)

I would like to improve this so that if the worksheet does not exist
insert a new one and then rename it to my search variable, i though
something along the lines of the below would work but it hasn't!
guess the 0 is the wrong thing to look for, any help appreciated

If Sheets(sYear) = 0 Then
Sheets.Add
ActiveSheet.Name = sYear
Else
Set wsI = Sheets(sYear)
End I

--
cereldin
-----------------------------------------------------------------------
cereldine's Profile: http://www.excelforum.com/member.php...fo&userid=3206
View this thread: http://www.excelforum.com/showthread.php?threadid=53500


Jim Thomlinson

search for worksheet, insert new if doesn't exist
 
Here is a function that tells you if a sheet exists in a given workbook

Public Function SheetExists(SName As String, _
Optional ByVal Wb As Workbook) As Boolean
'Chip Pearson
On Error Resume Next
If Wb Is Nothing Then Set Wb = ThisWorkbook
SheetExists = CBool(Len(Wb.Sheets(SName).Name))
End Function

If sheetexists(sYear) Then
Set wsI = Sheets(sYear)
Else
Sheets.Add
Set wsI = Activesheet
wsI.Name = sYear
End If

--
HTH...

Jim Thomlinson


"cereldine" wrote:


Im opening up a workbook and then selecting a worksheet based on a
string variable like so (wsI is worksheet variable, sYear is search
criteria)

Set wsI = Sheets(sYear)

I would like to improve this so that if the worksheet does not exist i
insert a new one and then rename it to my search variable, i thought
something along the lines of the below would work but it hasn't! I
guess the 0 is the wrong thing to look for, any help appreciated

If Sheets(sYear) = 0 Then
Sheets.Add
ActiveSheet.Name = sYear
Else
Set wsI = Sheets(sYear)
End If


--
cereldine
------------------------------------------------------------------------
cereldine's Profile: http://www.excelforum.com/member.php...o&userid=32069
View this thread: http://www.excelforum.com/showthread...hreadid=535008



Bob Phillips[_6_]

search for worksheet, insert new if doesn't exist
 
On Error Resume Next
Set wsI = Worksheets(sYear)
On Error GoTo 0
If wsI Is Nothing Then
Worksheets.Add.Name = sYear
Set wsI = Worksheets(sYear)
End If

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"cereldine" wrote
in message ...

Im opening up a workbook and then selecting a worksheet based on a
string variable like so (wsI is worksheet variable, sYear is search
criteria)

Set wsI = Sheets(sYear)

I would like to improve this so that if the worksheet does not exist i
insert a new one and then rename it to my search variable, i thought
something along the lines of the below would work but it hasn't! I
guess the 0 is the wrong thing to look for, any help appreciated

If Sheets(sYear) = 0 Then
Sheets.Add
ActiveSheet.Name = sYear
Else
Set wsI = Sheets(sYear)
End If


--
cereldine
------------------------------------------------------------------------
cereldine's Profile:

http://www.excelforum.com/member.php...o&userid=32069
View this thread: http://www.excelforum.com/showthread...hreadid=535008





All times are GMT +1. The time now is 03:33 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com