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

VBA: Blatt löschen\leeren bis auf Zeile1

Forumthread: VBA: Blatt löschen\leeren bis auf Zeile1

VBA: Blatt löschen\leeren bis auf Zeile1
20.04.2016 15:03:49
jam
Hallo zusammen,
ich lösche bzw. leere mit dem folgendem Code ein bestimmtes Tabellenblatt:

Sub clear_sheets()
Sheets("Ergebnis").Cells.Clear
End Sub

Nun muss ich aber doch in Zeile 1 die Spalten A bis H stehen lassen. Alles andere kann weiterhin gelöscht werden. Es ist banal, aber ich weiß es nicht, wie ich den Code entsprechend anpassen muss.
Könnt ihr mir bitte nochmal helfen?
Danke und Gruß

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Blatt löschen\leeren bis auf Zeile1
20.04.2016 15:07:46
Peter
Hallo,
versuche es mal hiermit

Sub clear_sheets()
Sheets("Ergebnis").Range("A2:XFD1048576").Clear
Sheets("Ergebnis").Range("I1:XFD1").Clear
End Sub
Gruß,
Peter

AW: VBA: Blatt löschen\leeren bis auf Zeile1
20.04.2016 15:24:10
jam
Hallo Peter,
das ist es. Klappt.
Vielen Dank.
Gruß
jam

Anzeige
AW: VBA: Blatt löschen\leeren bis auf Zeile1
20.04.2016 15:08:56
Daniel
Hi

With Sheets("Ergebnis").Cells
.Resize(.Rows.Count - 1).Offset(1, 0).Clear
.Resize(1, .Columns.Count - 8).Offset(0, 8).Clear
End with
Gruß Daniel

AW: VBA: Blatt löschen\leeren bis auf Zeile1
20.04.2016 15:28:38
Adleano
Hey,
wenn du nur spezifische Bereiche löschen willst, wäre das hier eine Möglichkeit:

dim wsDeinSheet as worksheet
dim lngAnzZeilen as long, lngAnzSpalten as long
dim lngSpalteCount as long, lngZeileCount as long 'für die Ermittlung der Anzahl Zeilen und  _
Spalten
with  wsDeinSheet
'Alles ab Zeile 2 löschen
lngAnzZeilen = .Cells(Rows.Count, lngSpalteCount ).End(xlUp).Row                              _
lngAnzSpalten = .Cells(lngZeileCount , Columns.Count).End(xlToLeft).Column                    _
with .range(.cells(2,1), .cells(lngAnzZeilen , lngAnzSpalten))
.clearcontents 'Werte löschen
.clearFormats 'Formatierungen löschen
end with
end with
So in der Art sollte das funktionieren.
Grüße

Anzeige
AW: VBA: Blatt löschen\leeren bis auf Zeile1
20.04.2016 15:29:11
jam
Danke Daniel !!!
Tolle und schnelle Hilfe bekommt man hier.

AW: VBA: Blatt löschen\leeren bis auf Zeile1
20.04.2016 16:05:21
jam
Danke Daniel !!!
Tolle und schnelle Hilfe bekommt man hier.

AW: VBA: Blatt löschen\leeren bis auf Zeile1
20.04.2016 16:05:26
jam
Danke Daniel !!!
Tolle und schnelle Hilfe bekommt man hier.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Tabellenblatt leeren bis auf Zeile 1


Schritt-für-Schritt-Anleitung

Um ein Excel VBA Tabellenblatt zu leeren, bis auf die erste Zeile, kannst du den folgenden Code verwenden. Dieser Code löscht alle Zellen ab der zweiten Zeile, während die erste Zeile erhalten bleibt:

Sub clear_sheets()
    Sheets("Ergebnis").Range("A2:XFD1048576").Clear
    Sheets("Ergebnis").Range("I1:XFD1").Clear
End Sub

Falls du nur bestimmte Bereiche oder Formate löschen möchtest, kannst du auch den folgenden Code verwenden:

Dim wsDeinSheet As Worksheet
Dim lngAnzZeilen As Long, lngAnzSpalten As Long

Set wsDeinSheet = Sheets("Ergebnis")

With wsDeinSheet
    lngAnzZeilen = .Cells(Rows.Count, 1).End(xlUp).Row
    lngAnzSpalten = .Cells(1, Columns.Count).End(xlToLeft).Column

    With .Range(.Cells(2, 1), .Cells(lngAnzZeilen, lngAnzSpalten))
        .ClearContents ' Werte löschen
        .ClearFormats ' Formatierungen löschen
    End With
End With

Häufige Fehler und Lösungen

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

    • Lösung: Stelle sicher, dass das Tabellenblatt mit dem angegebenen Namen ("Ergebnis") existiert.
  • Fehler: "Laufzeitfehler 1004: Anwendung oder Objekt definiert"

    • Lösung: Überprüfe, ob die Range korrekt definiert ist und die angegebenen Zellen existieren.

Alternative Methoden

Eine alternative Methode, um ein Excel Blatt zu löschen, besteht darin, das gesamte Arbeitsblatt zu leeren und dann nur die erste Zeile wiederherzustellen. Dies kannst du mit dem folgenden VBA Code erreichen:

Sub clear_and_restore()
    With Sheets("Ergebnis")
        ' Inhalt löschen
        .Cells.Clear
        ' Erste Zeile wiederherstellen
        .Rows(1).Value = Array("Spalte A", "Spalte B", "Spalte C", "Spalte D", "Spalte E", "Spalte F", "Spalte G", "Spalte H")
    End With
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele, wie du den Code anpassen kannst:

  1. Nur spezifische Spalten leeren:

    Sub clear_specific_columns()
       Sheets("Ergebnis").Range("B2:D1048576").Clear
    End Sub
  2. Tabellenblatt löschen:

    Sub delete_sheet()
       Application.DisplayAlerts = False ' Warnmeldung ausblenden
       Sheets("Ergebnis").Delete
       Application.DisplayAlerts = True ' Warnmeldung wieder einblenden
    End Sub

Tipps für Profis

  • Verwende Range("A2:XFD1048576").ClearContents anstelle von .Clear, wenn du nur die Inhalte, aber nicht die Formatierungen löschen möchtest.
  • Um die Performance zu verbessern, kannst du Berechnungen und Bildschirmaktualisierungen vor der Ausführung des Codes deaktivieren:
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich ein ganzes Tabellenblatt in Excel VBA löschen?
Du kannst das gesamte Tabellenblatt mit Sheets("Ergebnis").Delete löschen. Vergiss nicht, vorher eine Sicherungskopie zu erstellen, falls nötig.

2. Was passiert, wenn ich .Clear anstelle von .ClearContents verwende?
Mit .Clear werden sowohl die Inhalte als auch die Formate der Zellen gelöscht. .ClearContents entfernt nur die Werte, während die Formatierung erhalten bleibt.

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