See if this will get you started. The sub calls function GoodSheetName to validate a good sheet name
Sub createsheeet()
Dim shName As String
shName = GoodSheetName(ActiveCell.Value)
If Not shName = vbNullString Then
If Not Evaluate("=ISREF('" & shName & "'!A1)") Then
With Sheets("Template").Copy(After:=Worksheets(Worksheets.Count))
.Name = shName
End With
End If
End If
End Sub
Private Function GoodSheetName(ByVal strName As String) As String
Dim vaIllegal As Variant
Dim i As Long
'List unwanted characters
vaIllegal = Array(".", "?", "!", "*", "/", "", "[", "]", "‘", Chr(34), "|", "<", ">", "\", ":")
'Remove all illegals
For i = LBound(vaIllegal) To UBound(vaIllegal)
strName = Replace(strName, vaIllegal(i), "")
Next i
GoodSheetName = Left$(strName,31)
End Function
Bookmarks