Excel VBA – Leere Spalten löschen

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
Als ich die Funktionsweise von Schleifen erklärt habe, zeigte ich wie Sie leere Spalten verstecken können. In diesem How To zeige ich wie Sie leere Zeilen aus der Tabelle entfernen.

111 VBA Makros die Ihr Leben leichter machen. Egal ob Sie Einsteiger oder fortgeschrittener Anwender sind – in diesem Buch finden Sie Lösungen für Ihre alltäglichen Aufgaben. Keine Vorkenntnisse notwendig.

Ausgangstabelle, leere Spalten sollen gelöscht werden

Wenn Sie etwas löschen, achten Sie bitte darauf, dass Sie immer von rechts nach links bzw. von unten nach oben arbeiten!
Wir schreiben also ein Makro, dass von der letzten verwendeten Spalte nach links geht und alle leeren Spalten löscht. Dabei wird die Spalte als leer betrachtet, wenn in der ersten Zeile kein Wert steht.
Gehen Sie dazu mit ALT+F11 in die Entwicklungsumgebung und fügen Sie ein neues Modul ein. Als erstes definieren wir die Spalten-Variablen für die Schleife. Danach bestimmen wir die Tabelle mit der wir arbeiten. Über .UsedRange.Columns.Count bestimmen wir die letzte Spalte und schreiben diese in die Variable SpalteEnd.

Sub SpaltenLoeschen()
Dim Spalte As Integer
Dim SpalteEnd As Integer

With Sheet1
SpalteEnd = .UsedRange.Columns.Count

End With
End Sub

Nun setzen wir unsere Schleife auf. Diese fängt mit der letzten Spalte an und arbeitet sich nach links vor.

For Spalte = SpalteEnd To 1 Step -1

Next Spalte

Unternehmensplanung mit SAP BPC

111 VBA Makros die Ihr Leben leichter machen

Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.

Innerhalb der Schleife prüfen wir ob die erste Zeile in der jeweiligen Spalte leer ist. Trifft die Bedingung zu, löschen wir die Spalte. Dazu übergeben wir dem Auflistungsobjekt Columns die jeweilige Spalte und wenden die Methode Delete an.

If .Cells(1, Spalte).Value = "" Then
.Columns(Spalte).Delete
End If

Das gesamte Coding sieht wie folgt aus.

Sub SpaltenLoeschen()
Dim Spalte As Integer
Dim SpalteEnd As Integer

With Sheet1
SpalteEnd = .UsedRange.Columns.Count

For Spalte = SpalteEnd To 1 Step -1
If .Cells(1, Spalte).Value = "" Then
.Columns(Spalte).Delete
End If
Next Spalte

End With
End Sub

Führen Sie nun das Makro über die Taste F5 aus.
Leere Spalten werden gelöscht.
Leere Spalten über VBA löschen
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.