Als je niet over al je sheets wilt lopen om de namen te controleren, kan het ook door juist gebruik te maken van het feit dat de code een fout genereert...
Hierbij een voorbeeld van hoe dat werkt....
Sub TestWat()
Dim WelkeSheet As String
WelkeSheet = Application.InputBox("Geef een naam op voor de nieuwe sheet...", "Naam", , , , , , 2)
MsgBox "De opgegeven sheet '" & WelkeSheet & "' bestaat " & IIf(BestaatSheet(WelkeSheet), "wel", "niet") & ".", vbOKOnly, WelkeSheet
End Sub
Function BestaatSheet(SheetNaam As String) As Boolean
On Error Resume Next
BestaatSheet = Not Worksheets(SheetNaam) Is Nothing
End Function
Roep de Sub aan in je workbook. Hiermee wordt de functie aangeroepen die dus test of de opgegeven naam bestaat. Dat resultaat wordt nu teruggegeven in een MsgBox, maar kan je natuurlijk ook gebruiken om direct een sheet aan te maken (of juist niet).