Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellenblatt anlegen falls nicht vorhanden

Tabellenblatt anlegen falls nicht vorhanden
Mister-B
Guten Morgen,
wie kann ich mittels VBA ein neues Tabellenblatt anlegen falls es nicht schon vorhanden ist. Der Name der anzulegenden Tabelle ist in A1.
Gruß
amrtin
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Tabellenblatt anlegen falls nicht vorhanden
21.07.2012 10:49:03
Hajo_Zi

Option Explicit
Private Sub Aufheben()
Dim WsTabelle As Worksheet
Dim BoVorhanden As Boolean
'* H. Ziplies                                     *
'* 21.07.12                                       *
'* erstellt von HajoZiplies@web.de                *
'* http://Hajo-Excel.de/
For Each WsTabelle In Sheets
If WsTabelle.Name = Range("A1") Then
BoVorhanden = True
End If
Next WsTabelle
If BoVorhanden = False Then
Sheets.Add.Name = Range("A1")
End If
End Sub


Anzeige
AW: Tabellenblatt anlegen falls nicht vorhanden
21.07.2012 11:00:03
Mister-B
Hallo Hajo,
deine Antwort ist wie immer perfekt.
Danke und ein schönes Wochenende.
Gruß
Martin
AW: Tabellenblatt anlegen falls nicht vorhanden
21.07.2012 11:12:30
Hajo_Zi
Hallo Martin,
es gibt mehrere Lösungen. Kürzer wäre Fehler auslösen. Das lehne ich aber ab.
Gruß Hajo
Anzeige
hier noch eine andere Variante ...
21.07.2012 11:19:52
Matthias
Hallo
Du brauchst dringend eine Fehlerroutine wg. möglicher ungültiger Zeichen z.B /
Hajos Code liefe dann auf einen VBA-Fehler
Ich war auch am basteln.
Kannst ja mal testen.
https://www.herber.de/bbs/user/81111.xlsm
Der Code:
Option Explicit
Sub MyNewSheet()
Dim MyName$, x&
MyName = Tabelle1.Range("A1").Text
On Error GoTo ErrExit
For x = 1 To Worksheets.Count
If Worksheets(x).Name = MyName Then
MsgBox "Dieses Blatt existiert schon", vbCritical
Exit Sub
End If
Next
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = MyName
Exit Sub
ErrExit:
MsgBox "es ist ein Fehler augfgetreten evtl. sind ungültige Zeichen im Namen", vbInformation
Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
End Sub
Gruß Matthias
Anzeige
AW: hier noch eine andere Variante ...
21.07.2012 11:22:48
Hajo_Zi
Hallo Matthias,
das kann man ja über Daten Gültigkeit machen, davon bin ich ausgegangen.
Gruß Hajo
klar ... aber wer macht das schon ;-) owT
21.07.2012 11:26:36
Matthias
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt anlegen, falls nicht vorhanden


Schritt-für-Schritt-Anleitung

Um ein neues Tabellenblatt in Excel VBA zu erstellen, falls es nicht bereits vorhanden ist, kannst du den folgenden Code verwenden. Dieser Code prüft, ob der Name des neuen Tabellenblatts in Zelle A1 angegeben ist.

Option Explicit
Private Sub Aufheben()
    Dim WsTabelle As Worksheet
    Dim BoVorhanden As Boolean

    For Each WsTabelle In Sheets
        If WsTabelle.Name = Range("A1") Then
            BoVorhanden = True
        End If
    Next WsTabelle

    If BoVorhanden = False Then
        Sheets.Add.Name = Range("A1")
    End If
End Sub

Füge diesen Code in ein Modul in deinem VBA-Editor ein. Wenn du das Makro ausführst, wird ein neues Tabellenblatt mit dem Namen aus A1 erstellt, falls es noch nicht existiert.


Häufige Fehler und Lösungen

Fehler 1: "Das Blatt existiert schon"

Wenn du versuchst, ein Tabellenblatt mit einem Namen zu erstellen, der bereits vorhanden ist, wird ein Fehler angezeigt. Um dies zu vermeiden, kannst du eine Fehlerroutine implementieren, wie im folgenden Beispiel:

Option Explicit
Sub MyNewSheet()
    Dim MyName As String, x As Integer
    MyName = Tabelle1.Range("A1").Text
    On Error GoTo ErrExit

    For x = 1 To Worksheets.Count
        If Worksheets(x).Name = MyName Then
            MsgBox "Dieses Blatt existiert schon", vbCritical
            Exit Sub
        End If
    Next

    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = MyName
    Exit Sub
ErrExit:
    MsgBox "Es ist ein Fehler aufgetreten, eventuell sind ungültige Zeichen im Namen", vbInformation
    Application.DisplayAlerts = False
    Sheets(Sheets.Count).Delete
    Application.DisplayAlerts = True
End Sub

Alternative Methoden

Neben dem oben genannten Code gibt es auch andere Möglichkeiten, ein neues Tabellenblatt zu erstellen und zu benennen. Du kannst die Funktion Application.Worksheets.Add verwenden, um ein neues Blatt hinzuzufügen und dann den Namen wie gewünscht festlegen.

Sub NeuesTabellenblatt()
    Dim NeuesBlatt As Worksheet
    Set NeuesBlatt = Application.Worksheets.Add
    NeuesBlatt.Name = "NeuerName" ' Ersetze "NeuerName" durch den gewünschten Namen
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du ein neues Tabellenblatt in verschiedenen Szenarien erstellen kannst:

  1. Tabellenblatt basierend auf Zelle A1:

    Sub BlattErstellen()
       If Not Evaluate("ISREF('" & Range("A1").Value & "'!A1)") Then
           Sheets.Add.Name = Range("A1").Value
       End If
    End Sub
  2. Erstellen eines Blattes mit einem Datum im Namen:

    Sub BlattMitDatum()
       Dim BlattName As String
       BlattName = "Daten_" & Format(Date, "YYYY_MM_DD")
       If Not Evaluate("ISREF('" & BlattName & "'!A1)") Then
           Sheets.Add.Name = BlattName
       End If
    End Sub

Tipps für Profis

  • Namen validieren: Stelle sicher, dass der Name des neuen Tabellenblatts keine ungültigen Zeichen enthält. Verwende Application.WorksheetFunction.CountIf zur Validierung.
  • Benutzerdefinierte Fehlermeldungen: Erstelle benutzerdefinierte Fehlermeldungen, um dem Benutzer klare Anweisungen zu geben, wenn ein Fehler auftritt.
  • Modulare Programmierung: Teile deinen Code in kleinere, wiederverwendbare Subroutinen auf, um die Lesbarkeit und Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich ein neues Tabellenblatt ohne VBA erstellen? Du kannst ein neues Tabellenblatt einfach über das Menü "Einfügen" > "Blatt" hinzufügen.

2. Was passiert, wenn der Name des neuen Blattes bereits existiert? Wenn der Name bereits existiert, wird ein Fehler auftreten. Nutze die oben beschriebenen Fehlerbehandlungsmechanismen, um dies zu vermeiden.

3. Funktioniert dieser Code in allen Excel-Versionen? Ja, der bereitgestellte VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige