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

Forumthread: Blätter per VBA löschen

Blätter per VBA löschen
25.11.2019 11:21:02
Roger
Guten Tag
Gerne würde ich in einer Mappe das neu generierte Blatt behalten und den Rest löschen.
Unten habe ich ein Code der leider so ist das es die Rechnung 1 beibehält und die Rechnung 2 löscht. In meinem Fall müsste es Rechnung 1 löschen und Rechnung 2 behalten also immer das neu generierte behalten.
Sub ErstesBlattLassen()
Application.DisplayAlerts = False
While Worksheets.Count > 1
Worksheets(2).Delete
Wend
Application.DisplayAlerts = True
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blätter per VBA löschen
25.11.2019 11:56:05
UweD
Hallo
Sub ErstesBlattLassen()
    Dim TB
    Application.DisplayAlerts = False
    For Each TB In ThisWorkbook.Worksheets
        If TB.Name <> "Rechnung 2" Then TB.Delete
    Next
    Application.DisplayAlerts = True
End Sub
LG UweD
Anzeige
AW: Blätter per VBA löschen
25.11.2019 13:43:11
Daniel
kommt jetzt darauf an, wo das neu erstellte Blatt steht, bzw wie man das zuletzt erstellte Blatt erkennt.
wenn das neue Blatt ganz rechts steht, müsste dein Code so funktionieren:
 While Worksheets.Count > 1
Worksheets(1).Delete
Wend
steht es ganz links, dann
 While Worksheets.Count > 1
Worksheets(2).Delete
Wend
steht es mittendrin, dann wird's etwas komplizierter.
dann müsstest du dir beim erstellen des neuen Blattes dessen Namen oder das Blatt in einer Variablen merken und diesen abfragen
dim WSneu as Worksheet
dim WS as worksheet
set WSneu = Worksheets.Add(…)
for each ws in thisworkbook.worksheets
if WS.name  WSneu.name then ws.delete
next
Gruß Daniel
Anzeige
AW: Blätter per VBA löschen
25.11.2019 14:43:32
Roger
Vielen Dank es funktioniert
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Blätter per VBA löschen


Schritt-für-Schritt-Anleitung

Um in Excel mehrere Blätter per VBA zu löschen, kannst du den folgenden Code verwenden. Dieses Beispiel sorgt dafür, dass nur das neueste Blatt in der Arbeitsmappe bleibt:

Sub BlätterLöschen()
    Application.DisplayAlerts = False
    While Worksheets.Count > 1
        Worksheets(2).Delete
    Wend
    Application.DisplayAlerts = True
End Sub

Wenn du sicherstellen möchtest, dass ein bestimmtes Blatt, wie „Rechnung 2“, erhalten bleibt, kannst du den Code anpassen:

Sub ErstesBlattLassen()
    Dim TB As Worksheet
    Application.DisplayAlerts = False
    For Each TB In ThisWorkbook.Worksheets
        If TB.Name <> "Rechnung 2" Then TB.Delete
    Next
    Application.DisplayAlerts = True
End Sub

Häufige Fehler und Lösungen

  1. Blatt lässt sich nicht löschen: Stelle sicher, dass das Blatt nicht geschützt ist. Du kannst den Schutz mit Unprotect aufheben.

  2. Fehlermeldung bei leerem Arbeitsblatt: Wenn du versuchst, ein leeres Arbeitsblatt zu löschen, das bereits entfernt wurde, könnte es zu einer Fehlermeldung kommen. Überprüfe die Anzahl der Arbeitsblätter, bevor du versuchst, sie zu löschen.

  3. Falsches Blatt wird gelöscht: Achte darauf, dass du die richtige Schleifenlogik verwendest. Wenn das neueste Blatt an einer anderen Stelle steht, kann es notwendig sein, die Indizes anzupassen.


Alternative Methoden

Wenn du manuell Blätter löschen möchtest, kannst du auch die Benutzeroberfläche nutzen:

  1. Klicke mit der rechten Maustaste auf den Tab des Blattes, das du löschen möchtest.
  2. Wähle „Löschen“ aus dem Kontextmenü.

Für das Löschen mehrerer Blätter halte die Strg-Taste gedrückt und klicke auf die Tabs der Blätter, die du entfernen möchtest. Anschließend klickst du mit der rechten Maustaste und wählst „Löschen“.


Praktische Beispiele

  1. Löschen aller Blätter außer dem ersten:
Sub AlleAußerErstesBlattLöschen()
    Application.DisplayAlerts = False
    For i = Worksheets.Count To 2 Step -1
        Worksheets(i).Delete
    Next i
    Application.DisplayAlerts = True
End Sub
  1. Alle Blätter löschen und ein neues erstellen:
Sub AlleBlätterLöschenUndNeuesErstellen()
    Dim WSneu As Worksheet
    Application.DisplayAlerts = False
    While Worksheets.Count > 0
        Worksheets(1).Delete
    Wend
    Set WSneu = Worksheets.Add
    WSneu.Name = "Neues Blatt"
    Application.DisplayAlerts = True
End Sub

Tipps für Profis

  • Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während des Löschvorgangs zu deaktivieren. Das beschleunigt den Vorgang und verhindert Flackern.

  • Wenn du oft mit dem Löschen von Blättern arbeitest, erstelle eine benutzerdefinierte Funktion, um die Wiederverwendbarkeit zu erhöhen.

  • Denke daran, vor dem Löschen eine Sicherungskopie der Arbeitsmappe zu erstellen, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich alle Blätter in einer Excel-Datei auf einmal löschen?
Verwende den While-Loop, um alle Blätter zu löschen, bis nur noch eines übrig bleibt.

2. Was passiert, wenn ich ein Blatt lösche, das Daten enthält?
Das Blatt wird gelöscht und alle darin enthaltenen Daten gehen verloren. Stelle sicher, dass du wichtige Daten vorher sicherst.

3. Kann ich das Löschen von Blättern rückgängig machen?
Nach dem Löschen eines Blattes gibt es keine Möglichkeit, dies rückgängig zu machen, es sei denn, du hast eine Sicherungskopie der Datei.

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