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

Alle Tabellenblätter löschen, ausser...

Forumthread: Alle Tabellenblätter löschen, ausser...

Alle Tabellenblätter löschen, ausser...
13.02.2009 08:40:00
Kai
HI,
ich will per Macro Tebellenblätter löschen, aber nicht ein bestimmtes, sondern ich will alle Tabellenblätter löschen, die NICHT "STARTSEITE" und ""DATEN" heisen.
Die Namen der zu löschenden kann unterschiedlich sein. Kann mich also vón den Namen her nicht festlegen.
Hat jemand ein Lösungsansatz.
Danke
Kai
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Alle Tabellenblätter löschen, ausser...
13.02.2009 08:52:00
Oberschlumpf
Hi Kai
Versuch das:

Sub test()
Dim wks As Worksheet
Application.DisplayAlerts = False
For Each wks In ThisWorkbook.Sheets
If LCase(wks.Name)  "startseite" And LCase(wks.Name)  "daten"  Then wks.Delete
Next
Application.DisplayAlerts = True
End Sub


Hilfts?
Bei der Gelegenheit hab ich ne Frage an dich:
Kannst du vor Absenden deiner Frage(n) selbige auf Tipp-, Grammatik-, Rechtschreib- und sonstige Fehler überprüfen?
Ciao
Thorsten

Anzeige
AW: Alle Tabellenblätter löschen, ausser...
13.02.2009 09:13:00
Kai
Hi Thorsten,
geht nicht, kommt ne Fehlermeldung, dass ich unsichtbare Blätter erst mal einblenden soll. Habe aber nichts ausgeblendet:
Hier mal ein Beispiel:
https://www.herber.de/bbs/user/59412.xls
AW: LCase wegnehmen...owT
13.02.2009 09:19:00
robert
AW: Alle Tabellenblätter löschen, ausser...
13.02.2009 09:20:00
Oberschlumpf
Hi Kai
Dein Code

Sub Löschen()
Dim wks As Worksheet
Application.DisplayAlerts = False
For Each wks In ThisWorkbook.Sheets
If LCase(wks.Name)  "tabelle1" And _
LCase(wks.Name)  "tabelle2" And _
LCase(wks.Name)  "tabelle3" Then wks.Delete
Next
Application.DisplayAlerts = True
End Sub


löscht nun, nachdem ich die Anfangsbuchstaben der Blattnamen aus Groß in Klein änderte, alle Tabellen außer 1,2 und 3.
Wenn du LCase verwendest, MUSS der Vergleichswert - hier "tabelle1" usw KLEIN geschrieben werden.
Mehr zu LCase und UCase in der Excelhilfe.
Aber auf jeden Fall erschien keine Fehlermeldung wegen unsichtbarer Blätter.
Ciao
Thorsten

Anzeige
Danke, jetzt gehts, Danke auch Robert owT
13.02.2009 11:58:00
Kai

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Alle Tabellenblätter löschen, außer bestimmte


Schritt-für-Schritt-Anleitung

Um alle Tabellenblätter in Excel zu löschen, außer einige bestimmte, kannst du ein einfaches VBA-Makro verwenden. Hier sind die Schritte:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, das du bearbeiten möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Gehe auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Kopiere den folgenden Code in das Modul:

    Sub AlleTabellenblaetterLoeschen()
       Dim wks As Worksheet
       Application.DisplayAlerts = False
       For Each wks In ThisWorkbook.Sheets
           If LCase(wks.Name) <> "startseite" And LCase(wks.Name) <> "daten" Then
               wks.Delete
           End If
       Next
       Application.DisplayAlerts = True
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Drücke ALT + F8, wähle das Makro AlleTabellenblaetterLoeschen aus und klicke auf Ausführen.

Dieses Makro löscht alle Tabellenblätter in der Arbeitsmappe, die nicht "STARTSEITE" oder "DATEN" heißen.


Häufige Fehler und Lösungen

  1. Fehlermeldung wegen unsichtbarer Blätter: Wenn du eine Fehlermeldung erhältst, dass unsichtbare Blätter zuerst eingeblendet werden müssen, stelle sicher, dass es keine Blätter gibt, die du nicht siehst. Du kannst alle Blätter mit folgendem Code einblenden:

    Sub AlleTabellenblaetterEinblenden()
       Dim wks As Worksheet
       For Each wks In ThisWorkbook.Sheets
           wks.Visible = xlSheetVisible
       Next
    End Sub
  2. Blätter werden nicht gelöscht: Achte darauf, dass die Namen der Blätter genau übereinstimmen. Der Vergleich ist nicht case-sensitive, wenn du LCase verwendest, also stelle sicher, dass die Namen in Kleinbuchstaben im Code sind.


Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch manuell mehrere Tabellenblätter in Excel löschen:

  1. Halte die CTRL-Taste gedrückt und klicke auf die Registerkarten der Blätter, die du löschen möchtest.
  2. Klicke mit der rechten Maustaste auf eine der ausgewählten Registerkarten und wähle Löschen.

Diese Methode eignet sich jedoch nicht, wenn du viele Blätter hast oder regelmäßig dieselben Blätter löschen möchtest.


Praktische Beispiele

  • Beispiel 1: Du möchtest alle Blätter löschen, außer "Bericht" und "Daten". Ändere einfach die Bedingungen im Code:

    If LCase(wks.Name) <> "bericht" And LCase(wks.Name) <> "daten" Then
  • Beispiel 2: Wenn du mehrere spezifische Blätter ausschließen möchtest, kannst du die Bedingungen erweitern:

    If LCase(wks.Name) <> "startseite" And LCase(wks.Name) <> "daten" And LCase(wks.Name) <> "archiv" Then

Tipps für Profis

  • Nutze Kommentare im Code, um dir Notizen zu machen, was jeder Abschnitt macht.
  • Teste dein Makro in einer Kopie deiner Arbeitsmappe, um Datenverluste zu vermeiden.
  • Du kannst das Makro anpassen, um eine Benutzerabfrage hinzuzufügen, welche Blätter gelöscht werden sollen.

FAQ: Häufige Fragen

1. Kann ich alle Blätter auf einmal löschen?
Ja, du kannst alle Blätter mit einem VBA-Makro löschen, indem du das oben erwähnte Skript verwendest.

2. Was passiert, wenn ich das falsche Blatt lösche?
Das Löschen von Blättern ist irreversibel. Stelle sicher, dass du eine Sicherungskopie deiner Daten hast, bevor du das Makro ausführst.

3. Wie kann ich ein bestimmtes Blatt schützen?
Du kannst ein Blatt schützen, indem du mit der rechten Maustaste auf die Registerkarte klickst und Blatt schützen wählst. So kannst du verhindern, dass es gelöscht wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige