1.5k Aufrufe
Gefragt in Tabellenkalkulation von
Ich habe folgenden VBA Code von coros gefunden:

Sub Leere_Spalten_ausblenden()

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).EntireColumn.Hidden = True
End If
Next
End Sub

Wie muss ich den Code ergänzen, wenn eine Überschrift besteht. Dh. wenn die Spalte ab der zweiten Zeile bis .... leer ist.

Gruss Idefix

7 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
ab Excel 2007 gibt es mehr als 256 Spalten.
If cells(1,leere_Spalte )="" Then
Columns(leere_Spalte).EntireColumn.Hidden = True

Gruß Hajo
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
das war nicht ganz nicht ganz richtig
If cells(1,leere_Spalte )="" then
If Application.CountA(Columns(leere_Spalte)) = 0 Then

Gruß Hajo
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
das war noch falsch.
If cells(1,leere_Spalte )="" Then
If Application.CountA(Columns(leere_Spalte)) = 0 Then
Columns(leere_Spalte).EntireColumn.Hidden = True

Gruß Hajo
0 Punkte
Beantwortet von
Hi Hajo_Zi

Besten Dank für deine Antwort. Es besteht leider noch ein Problem. Ich erhalte die Fehlermeldung " Fehler beim Kompilieren: Next ohne For".

Den Code habe ich wie folgt ergänzt:

Sub Leere_Spalten_ausblenden()

Dim leere_Spalte As Integer

Application.ScreenUpdating = False

If Cells(1, leere_Spalte) = "" Then
If Application.CountA(Columns(leere_Spalte)) = 0 Then
Columns(leere_Spalte).EntireColumn.Hidden = True

End If
Next
End Sub

Vielleicht liegt der Fehler bereits hier. Um ggf. das Problem genauer zu beschreiben möchte ich Spalten entfernen, welche leer sind jedoch eine Überschrift haben. Dh. die Spalte soll ausgeblendet werden wenn ab der zweiten Zeile alles leer ist.

Gruss, Fapi
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Fapi,

da fehlt

For leere_Spalte = 256 To 1 Step -1

(Siehe deine Fragestellung) und noch ein End If.

Ergänzt müsste dein Code so aussehen:

Sub Leere_Spalten_ausblenden()

Dim leere_Spalte As Integer

Application.ScreenUpdating = False
For leere_Spalte = 256 To 1 Step -1
If Cells(1, leere_Spalte) = "" Then
If Application.CountA(Columns(leere_Spalte)) = 0 Then
Columns(leere_Spalte).EntireColumn.Hidden = True
End If
End If
Next
End Sub


Gruß

M.O.
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Fapi,

Bei mir ginge es so:

Sub Leere_Spalten_ausblenden()

Dim leere_Spalte As Integer

Application.ScreenUpdating = False
For leere_Spalte = 256 To 1 Step -1
If Application.CountA(Columns(leere_Spalte)) = 1 Then
Columns(leere_Spalte).EntireColumn.Hidden = True
End If
Next
End Sub

Gruß

Paul1

Excel 2003
0 Punkte
Beantwortet von
Hallo M.O und Paul_1

Besten Dank für eure Hilfe. Ich hab noch etwas probiert aber den Fehler nicht gefunden. Die Hilfe von Paul_1 mit dem 1 Then auf der 5 Zeile hat funktioniert.

Super
Gruss, Fapi
...