Ausblenden von leeren Spalten
#1
Hallo zusammen, 

ich habe eine EXCEL-Tabelle erstellt. Mit einem Makro sollen nun alle leeren Spalten ausgeblendet werden. 
In der Tabelle gibt es zwei Auswahlmöglichkeiten: i.O. und N.i.O. im ersten Schritt wird bspw. nach i.O. gefiltert und somit alle übrigen Zeilen ausgeblendet.
Um nun leere Spalten auszublenden habe ich folgenden Code verwendet:

Code:
Public Sub Ausblenden()
Dim i As Long
Application.ScreenUpdating = False
With Worksheets("Exhibits")
For i = 4 To 10
    If WorksheetFunction.CountA(.Range(.Cells(5, i), .Cells(21, i))) = 0 Then
        .Columns(i).Hidden = True
    End If
Next i
End With

Application.ScreenUpdating = True
End Sub

Wenn in den ausgeblendeten Zeilen Einträge vorhanden sind, werden die Spalten nicht ausgeblendet.
Kann mir jemand sagen, wie ich den Code anpassen muss, damit nur eingeblendete Zeilen betrachtet werden?

Vielen Dank im Voraus.  Blush
Antworten Top
#2
Hallo

Code:
Public Sub Test()
Dim spalte

With Sheets("Tabelle1").AutoFilter.Range
     For Each spalte In .Columns
        If WorksheetFunction.Subtotal(3, spalte.Resize(.Rows.Count - 1).Offset(1)) = 0 Then spalte.EntireColumn.Hidden = True
     Next spalte
End With
End Sub
Versuch es mal damit.
Antworten Top
#3
Hallo Elex, 

vielen Dank für die schnelle Hilfe, funktioniert aber leider nicht so wie ich es brauche. 
Es sollen nur die Zeilen 5 - 21. Davor stehen noch Überschriften, weshalb die Spalten dann nicht als "leer" erkannt werden.. 

Eine Idee wie ich das noch mit reinbringen könnte?

Viele Grüße
Antworten Top
#4
Sollte eigentlich gehen. Der Code beachtet die Überschriften der Kopfzeile nicht.

Stell sonst bitte eine Bsp.Datei ein, damit wir nicht aneinander vorbei reden.
Antworten Top
#5
Hallo Simon,

Code:
Public Sub Ausblenden()
  Dim i As Long
  Application.ScreenUpdating = False
  With Worksheets("Exhibits")
    For i = 4 To 10
      .Columns(i).Hidden = WorksheetFunction.Subtotal(103, .Range(.Cells(5, i), .Cells(21, i))) = 0
    Next i
  End With
End Sub

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste