626 Aufrufe
Gefragt in Tabellenkalkulation von
HAllo,

hab folgendes MAkro aus dem Forum ausprobiert und wollte wissen ob jemand weiß, wie ich es umschreiben kann, damit er leere Spalten löscht ohne die Überschrift/bzw weggeblendete Zeilen nicht zu beachten, also das er diese al leer ansieht.

Sub Leere_Spalten_löschen()
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
End Sub

Danke im voraus

lg ca

1 Antwort

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo,

habe die Frage so verstanden:

Es sollen alle leeren Spalten, die auch noch eine Überschrift haben gelöscht werden und auch gleichzeitig die ausgeblendeten Zeilen, die egal ob leer oder nichtleer sind mit gelöscht werden.

Die nachfolgenden Makros in dieser Reihenfolge anwenden:

1. Der Code zum Löschen der ausgeblendeten Zeilen:

Sub test_makro()

Dim wksBlatt As Worksheet
Dim rng As Range

Application.ScreenUpdating = False

For Each rng In ActiveSheet.UsedRange
If rng.EntireRow.Hidden = True Then
rng.EntireRow.Hidden = False
rng.EntireRow.Delete
Call test_makro
Exit For
End If
Next

Application.ScreenUpdating = True

End Sub

2. Der Code zum Löschen der leeren Spalten, wenn es auch eine Überschrift gibt:

Public Sub SpalteLöschen()
Dim loA As Long

For loA = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1
If Cells(2, loA) = "" Then
Range(Columns(loA), Columns(loA)).Delete shift:=xlToLeft
End If
Next

End Sub

Gruß

Paul1
...