Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Blatt löschen ohne Abfrage

Blatt löschen ohne Abfrage
Frank
Hallo zusammen,

es ist bestimmt nicht all zu schwer, aber ich wollte an dieser Stelle fragen wie ich am elegantesten alle Datenblätter beginnend vom 2ten bis zum letzten löschen kann. Mein Code funktioniert nur so halb... :(
Ich hoffe ihr könnt mir helfen.Vielen Dank und viele Grüße,
Frank
Private Sub CommandButton1_Click()
Dim i As Integer
Dim e As Integer
e = Worksheets.Count
For i = 2 To e
Sheets(i).Select
ActiveWindow.SelectedSheets.Delete
Next i
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Blatt löschen ohne Abfrage
07.06.2012 16:56:18
Frank
Achso und wenn möglich ohne das ich bei jeden Blatt gefragt werde, ob ich es löschen möchte.
Vielen Dank.
AW: Blatt löschen ohne Abfrage
07.06.2012 16:59:06
Hajo_Zi
Hallo Frank,
Option Explicit
Private Sub CommandButton1_Click()
Dim i As Integer
Application.DisplayAlerts = False
For i = Worksheets.Count To 2 Step -1
Sheets(i).delete
Next i
Application.DisplayAlerts = True
End Sub

Anzeige
alle Blätter außer dem ersten löschen ohne Abfrage
07.06.2012 17:31:45
Erich
Hi Frank,
probier mal

Private Sub CommandButton1_Click()
Dim arrS() As Long, ii As Long
ReDim arrS(2 To Sheets.Count)
For ii = 2 To Sheets.Count
arrS(ii) = ii
Next ii
Application.DisplayAlerts = False
Sheets(arrS).Delete
Application.DisplayAlerts = True
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
alle Blätter löschen - erweitert
07.06.2012 17:35:50
Erich
Hi Frank,
damit es keinen Fehlerabbruch gibt, wenn in der Mappe nur ein Blatt ist:

Private Sub CommandButton1_Click()
Dim arrS() As Long, ii As Long
If Sheets.Count > 1 Then
ReDim arrS(2 To Sheets.Count)
For ii = 2 To Sheets.Count
arrS(ii) = ii
Next ii
Application.DisplayAlerts = False
Sheets(arrS).Delete
Application.DisplayAlerts = True
End If
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
Vielen Dank an Hajo_Zi und Erich....
08.06.2012 08:21:03
Frank
beides funktioniert perfekt. Wahnsinn wie schnell einem hier immer geholfen wird. Tolles Forum.
Ich wünsche Allen ein schönes und erholsames Wochenende.
Viele Grüße,
Frank
;
Anzeige
Anzeige

Infobox / Tutorial

Blätter in Excel ohne Abfrage löschen


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Anwendung und erstelle oder öffne die Arbeitsmappe, aus der Du Blätter löschen möchtest.

  2. Öffne den VBA-Editor durch Drücken von ALT + F11.

  3. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  4. Kopiere den folgenden VBA-Code in das Modul:

    Option Explicit
    Private Sub CommandButton1_Click()
       Dim i As Integer
       Application.DisplayAlerts = False
       For i = Worksheets.Count To 2 Step -1
           Sheets(i).Delete
       Next i
       Application.DisplayAlerts = True
    End Sub
  5. Schließe den VBA-Editor und kehre zurück zu Excel.

  6. Füge einen Button hinzu (über Entwicklertools > Einfügen > Schaltfläche), um das Makro auszuführen.

  7. Verlinke das Makro mit dem Button, indem Du mit der rechten Maustaste auf den Button klickst, Makro zuweisen auswählst und das entsprechende Makro auswählst.

  8. Klicke auf den Button, um alle Blätter ab dem zweiten Blatt ohne Rückfrage zu löschen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"

    • Lösung: Stelle sicher, dass Du mindestens zwei Blätter in der Arbeitsmappe hast.
  • Fehler: Rückfragen beim Löschen

    • Lösung: Achte darauf, dass Application.DisplayAlerts = False korrekt gesetzt ist, um Rückfragen zu vermeiden.

Alternative Methoden

  • Anstelle eines Buttons kannst Du das Makro auch direkt im VBA-Editor ausführen. Wähle das Makro aus und klicke auf Ausführen.

  • Wenn Du nur bestimmte Blätter löschen möchtest, kannst Du den Code entsprechend anpassen, um nur die gewünschten Blätter zu löschen.


Praktische Beispiele

  1. Alle Blätter außer dem ersten löschen:

    Private Sub CommandButton1_Click()
       If Sheets.Count > 1 Then
           Application.DisplayAlerts = False
           Sheets(Array("Sheet2", "Sheet3")).Delete ' Beispiel
           Application.DisplayAlerts = True
       End If
    End Sub
  2. Löschen aller Blätter mit einem bestimmten Namen:

    Private Sub CommandButton1_Click()
       Dim ws As Worksheet
       Application.DisplayAlerts = False
       For Each ws In ThisWorkbook.Worksheets
           If ws.Name Like "Test*" Then
               ws.Delete
           End If
       Next ws
       Application.DisplayAlerts = True
    End Sub

Tipps für Profis

  • Nutze Application.ScreenUpdating = False vor dem Löschen von Blättern, um die Performance zu steigern und das Flackern des Bildschirms zu vermeiden.

  • Sichere deine Daten, bevor Du ein Makro ausführst, das Blätter löscht, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich verhindern, dass ein bestimmtes Blatt gelöscht wird?
Du kannst eine Bedingung im Code hinzufügen, um das spezifische Blatt zu überspringen.

2. Kann ich mehrere Blätter auf einmal löschen?
Ja, Du kannst im Code mehrere Blätter angeben oder eine Schleife verwenden, um sie nacheinander zu löschen.

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