2.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo!

ich sitze mal wieder an einer (für mich) kniffligen Sache:

Wie kann ich prüfen, ob ein Tabellenblatt mit bestimmten Titel schon existiert? Wenn das nicht der Fall ist, soll das Tabellenblatt nämlich erstellt werden und der Titel vergeben werden.

Ich hab mich und das Excel-Aufzeichnungs-Tool schon bemüht, und das ist dabei herausgekommen:


If Not Sheets("Titel") Then Application.Run "Tabelle.xls!erstellen"


und


Sub erstellen()
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Tabelle1").Name = "Titel"
End Sub


Ich bekomme so aber immer folgende Meldung:

"Laufzeitfehler '9':

Index außerhalb des gültigen Bereichs".

Könnt ihr mir vielleicht helfen?
Ich finde den blöden Fehler einfach nicht.

Vielen Dank schon mal im Voraus.

MfG mcscool88

4 Antworten

0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

hier eine prinzipielle Möglichkeit:
Sub Vorhanden()
Dim wsTabelle As Worksheet
On Error Resume Next
Set wsTabelle = Worksheets("Tabelle2")
On Error GoTo 0
If wsTabelle Is Nothing Then
MsgBox "Nicht vorhanden"
End If
End Sub

Bis später,
Karin
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Unbekannter,

feststellen, ob Worksheet vorhanden ist
hier ein Beispiel, welches Du relativ einfach entsprechend abändern kannst:
Sub TabAuswahl()
Dim Sh As Worksheet
Dim sName$
sName = InputBox("Bitte Tabellenname eingeben!")
For Each Sh In Worksheets
If InStr(Sh.Name, sName) > 0 Then
Sh.Select
Exit Sub
End If
Next Sh
Beep
MsgBox "Kein Blatt gefunden!"
End Sub

Gruß Hajo
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

oder so

gruss nighty

Sub DeinMakro()
If SheetExists("" & DeineVariable) = True Then
Rem ja
Else
Rem nein
End If
End Sub

Public Function SheetExists(strName As String) As Boolean
On Error Resume Next
SheetExists = Not Worksheets(strName) Is Nothing
End Function
0 Punkte
Beantwortet von
Hallo nochmal

es funktioniert!

Vielen lieben Dank für eure Hilfe!

Frohe Weihnachten und einen guten Rutsch ins neue Jahr wünscht,

mcscool88
...