Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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