Hi Jelena,
versuche es mal auf diesem Weg:
Sub SpaltenAusblenden() Dim rngZelle As Range For Each rngZelle In Selection.Rows(1).Cells If Application.Count(Selection.Columns(rngZelle.Column)) = 0 Then rngZelle.EntireColumn.Hidden = True Next rngZelle End Sub
Bis später, Karin
Hallo Karin, es sollen laut Beispiel die Spalten E, F, G, H, I, J und L, M, N ausgeblendet werden. Danke
dann so:
Sub SpaltenAusblenden() Dim intZaehler As Integer For intZaehler = 1 To Selection.Rows(1).Cells.Count If Application.Sum(Selection.Columns(intZaehler)) = 0 Then Selection.Columns(intZaehler).EntireColumn.Hidden = True Next intZaehler End Sub
Hi ihr Beiden,
Karins Lösung ist schon mal ganz gut, aber das über Sum zu lösen ist gefährlich. Es kann auch eine positive und eine Negative Zahl gleicher Höhe in der Spalte stehen und in Summe 0 ergeben, womit diese Daten ebenfalls ausgeblendet würden. Außerdem ist im Beispielbild nur Zeile 1 markiert. Selection.Columns gibt in dem Fall nur die einzelnen Zellen der ersten Zeile zurück.
Hier mein Codevorschlag:
Sub Ausblenden() Dim firstrow As Long, lastrow As Long, r As Range, s As Range firstrow = 1 lastrow = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1 Set r = Range(Cells(firstrow, Selection.Columns(1).Column), Cells(lastrow, Selection.Columns(1).Column + Selection.Columns.Count - 1)) For Each s In r.Columns If Application.CountIf(s, 0) + Application.CountBlank(s) = s.Cells.Count Then s.EntireColumn.Hidden = True Next s End Sub
Gruß Mr. K.
bei mir schon, sonst hätte ich ihn nicht gepostet. Kann es sein, dass du neben Nullen und Leerzellen auch noch andere Werte in deiner Sheet hast? z.B. Nullstrings "" Dann ersetze Application.CountBlank(s) durch Application.CountIf(s, "")
Ansonsten lade mal eine Beispielmappe hier hoch. Wie das geht, weißt du ja inzwischen.
58.7k Fragen
251k Antworten
7.3k Nutzer