2.5k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,
ich habe hier im Forum schon ein Makro gefunden, dass alle leeren Spalten löscht.

Dim leere_Spalte As Integer
Application.ScreenUpdating = False
For leere_Spalte = 256 To 1 Step -1
If Application.CountA(Columns(leere_Spalte)) = 0 Then
Columns(leere_Spalte).Delete
End If
Next

Ich habe jedoch in der ersten Zeile jeweils für jede Spalte eine Überschrift stehen und somit ist ja keine Spalte leer.
Wie kann man das Makro anpassen, dass er erst alle leeren Spalten ab Zeile 2 löscht?

3 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Molares,

es soll als Spale C2:C6536 zu B2:B65536 werden?

Gruß Hajo
0 Punkte
Beantwortet von
Äh nein,
das Problem ist, dass ja in Zeile 1 immer etwas steht, also für jede der Spalten ist da ja eine Überschrift enthalten.
Heißt A1, B1, C1, D1, E1 etc. haben alle INhalt und somit gibt es keine Spalte, die komplett leer ist.

Es gibt aber Spalten, die leer sind, wenn man sich die Überschriften wegdenkt.

Das heißt, das Makro soll alle Spalten erst ab zeile 2 durchsuchen und nicht schon die erste mit.

Angenommen Spalte D ist leer. Komplett. Dann steht jedoch immer noch in Spalte D1 etwas drinnen und somit erkennt das Makro die Spalte nicht als leer an.

Also alle Spalten erst ab der zweiten Zeile überprüfen und die erste Zeile aus lassen.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Molares,

MsgBox Range("L2:L65536").SpecialCells(xlCellTypeBlanks).Count > 0

Gruß Hajo
...