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
>
>