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

Tabellenblatt löschen

Forumthread: Tabellenblatt löschen

Tabellenblatt löschen
14.01.2003 10:01:36
Norbert
Hallo mal wieder,

ich hätte da gern ein einfaches Problem:

Ich möchte ein Tabellenblatt per VBA löschen. Habe den entsprechenden Part aufgezeichnet und in meinen Code eingefügt.
ActiveWindow.SelectedSheets.Delete
So weit so einfach. Mein Problem ist, daß er mich jetzt immer noch um Bestätigung fragt, ich aber nicht bestätigen möchte, da zu diesem Zeitpunkt der Ablauf des Codes einfach angehalten wird und erst nach "OK" bis zum Ende durchläuft.

Also wie schalte ich die Bestätigung aus, oder wie bestätige ich per VBA?

Danke im vorraus

Norbi

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Tabellenblatt löschen
14.01.2003 10:07:02
Hajo_ZI
Hallo Norbi

VBA kommt ohne select aus
Worksheets("Tabelle2").Delete

und die Mittelung davor
Application.DisplayAlerts = False
danach
Application.DisplayAlerts= True

Gruß Hajo


Re: Tabellenblatt löschen
14.01.2003 10:16:47
Norbert
Dank Dir Hajo,

ging ja mal wieder so schnell, so schnell kann man gar nicht schauen.

P.S. Ich weiß, daß VBA ohne select auskommt, macht die Sache beim Aufzeichnen aber wesentlich einfacher (für mich). Ich weiß auch, daß Ihr select verteufelt. Aber warum eigentlich?

Gruß Norbi

Anzeige
Re: Tabellenblatt löschen
14.01.2003 10:22:47
Hajo_ZI
Hallo Norbert
1. Zeit, lasse mal die beiden makros laufen


Option Explicit

Sub MitSelect()
Dim LoI As Long
For LoI = 1 To 65536
Cells(LoI, 1).Select
ActiveCell.Value = 1
Next LoI
End Sub

Sub OhneSelect()
Dim LoI As Long
For LoI = 1 To 65536
Cells(LoI, 2).Value = 1
Next LoI
End Sub

Code eingefügt mit: Excel Code Jeanie

2. der Bildschirm flakkert

und wenn man sich das erstmal angewöhnt hat, kommt m,an so schlecht wieder weg. In 99% kann auf select verzichtet werden.

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Anzeige
Re: Tabellenblatt löschen
14.01.2003 10:42:31
Norbert
Hallo Hajo,

Als ich die Makros hab laufen lassen war ich überzeugt. Punkt 1 und 2 stimmen. Jetzt habe ich mal mein screenupdating auf false gesetzt und da ist der Unterschied "nur" noch 2,8 Sekunden (hat mir der Rechner ausgegeben!) und das bei einem doch durchschnittlich langsamen Computer (1 Ghz). Immerhin wurden über 65.000 Felder ausgefüllt!!! Dafür daß es meiner Meinung nach das programmieren beschleunigt (gerade wenn ich oft Tabellenblätter und Dateien wechsle und oft die Namen austausche) tue ich mich schwer damit aufzuhören.

Auf jeden Fall danke ich Dir für die Ausführungen, sie haben mich wieder ein Stück weitergebracht, denn manchmal sind auch 2,8 Sekunden sehr lange. Und wenn ich einen schnellen Code brauche, weiß ich wo ich ansetzen kann.

Gruß Norbi

Anzeige
Danke HaJo
14.01.2003 10:55:28
Klaus Kunkler
Guten Tag und herzlichen Dank,
als eifrig Lernender endlich mal eine definierte Aussage, weshalb auf select verzichtet werden kann und soll. Ich werd´s für meinen Teil beherzigen.
Gruss
Klaus
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt per VBA löschen


Schritt-für-Schritt-Anleitung

Um ein Tabellenblatt in Excel per VBA zu löschen, gehe folgendermaßen vor:

  1. Öffne den VBA-Editor (ALT + F11).

  2. Füge ein neues Modul ein (Rechtsklick auf "Projekt" > "Einfügen" > "Modul").

  3. Schreibe den folgenden Code in das Modul:

    Sub TabellenblattLoeschen()
       Application.DisplayAlerts = False  ' Bestätigungsdialog deaktivieren
       Worksheets("Tabelle2").Delete      ' Blatt löschen
       Application.DisplayAlerts = True   ' Bestätigungsdialog wieder aktivieren
    End Sub
  4. Ersetze "Tabelle2" mit dem Namen des Blattes, das du löschen möchtest.

  5. Führe das Makro aus (F5), um das Tabellenblatt zu löschen.

Diese Methode ist effektiv, wenn du das vba tabellenblatt löschen ohne Bestätigungsaufforderung durchführen möchtest.


Häufige Fehler und Lösungen

  • Fehler: Excel blatt löschen geht nicht
    Stelle sicher, dass das Blatt nicht geschützt ist. Du kannst den Schutz mit folgendem Code aufheben:

    Worksheets("Tabelle2").Unprotect "dein_passwort"
  • Fehler: Excel tabellenblatt kann nicht gelöscht werden
    Überprüfe, ob das Blatt das aktive Blatt ist oder ob es sich um das letzte verbleibende Blatt in der Arbeitsmappe handelt. Du kannst nicht das letzte Blatt in einer Arbeitsmappe löschen, ohne mindestens ein anderes Blatt zu haben.


Alternative Methoden

  1. Direktes Löschen ohne VBA:
    Klicke mit der rechten Maustaste auf den Tab des Tabellenblatts und wähle "Löschen". Beachte, dass dies eine Bestätigung erfordert.

  2. Excel vba tabelle leeren:
    Wenn du nur die Inhalte des Tabellenblatts löschen möchtest, kannst du folgenden Code verwenden:

    Sub InhaltLoeschen()
       Worksheets("Tabelle2").Cells.ClearContents
    End Sub

Praktische Beispiele

Hier sind einige nützliche Beispiele für das Löschen von Tabellenblättern:

  • Alle Blätter in einer Schleife löschen:

    Sub AlleTabellenblaetterLoeschen()
      Dim ws As Worksheet
      Application.DisplayAlerts = False
      For Each ws In ThisWorkbook.Worksheets
          ws.Delete
      Next ws
      Application.DisplayAlerts = True
    End Sub
  • Bestimmte Blätter basierend auf Namen löschen:

    Sub BestimmteBlätterLoeschen()
      Dim ws As Worksheet
      Application.DisplayAlerts = False
      For Each ws In ThisWorkbook.Worksheets
          If ws.Name Like "Test*" Then  ' Löscht alle Blätter, die mit "Test" beginnen
              ws.Delete
          End If
      Next ws
      Application.DisplayAlerts = True
    End Sub

Tipps für Profis

  • Verwende Application.ScreenUpdating = False vor dem Löschen von Blättern, um das Flackern des Bildschirms zu vermeiden und den Prozess zu beschleunigen.

  • Wenn du viele Blätter löschen möchtest, überlege, ob du sie zuerst in ein Array speichern und dann in einer Schleife löschen kannst, um die Effizienz zu steigern.

  • Denke daran, das vba blatt löschen ohne Nachfrage zu nutzen, wenn du automatisierte Prozesse erstellst, um den Ablauf nicht zu unterbrechen.


FAQ: Häufige Fragen

1. Warum kann ich das Excel Arbeitsblatt nicht löschen?
Das Löschen eines Arbeitsblattes kann aufgrund von Schutz oder wenn es das einzige Blatt in der Arbeitsmappe ist, nicht möglich sein.

2. Wie kann ich den Inhalt eines Tabellenblatts per VBA löschen?
Nutze den Befehl Cells.ClearContents, um nur die Inhalte zu entfernen, ohne das Blatt selbst zu löschen.

3. Wie kann ich ein Tabellenblatt löschen, ohne um Bestätigung gefragt zu werden?
Setze Application.DisplayAlerts = False vor dem Löschen des Blattes, um die Bestätigungsaufforderung zu deaktivieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige