Microsoft Excel

Herbers Excel/VBA-Archiv

Spalten mit Leerzellen in mark. Zeilen ausblenden


Betrifft: Spalten mit Leerzellen in mark. Zeilen ausblenden von: Dominik
Geschrieben am: 14.10.2019 14:48:49

Hallo,
ich habe eine sehr breite Excel Tabelle.
Pro Zeile sind aber bei weitem nicht alle Zellen ausgefüllt.
In mehreren aufeinanderfolgenden Zeilen stehen zusammegehörende Daten. Kleine "Zeilenpakete", 2-20 Zeilen.

Um Einträge in diesen Zeilen übersichtlicher zu darzustellen, also weniger scrollen zu müssen, würde ich gerne Spalten, in denen sich leere Zellen befinden ausblenden lassen.
Dazu würde ich gerne die kompletten Zeilen markieren und dann ein Makro drüberlaufen lassen.

Bisher konnte ich mir das hier zusammenbasteln:

Sub SpaltenAusblenden()
Dim Spalte As Integer
Dim SpalteEnd As Integer

With Tabelle1
SpalteEnd = .UsedRange.Columns.Count

For Spalte = 1 To SpalteEnd
If .Cells(ActiveCell.Row, Spalte).Value = "" Then
.Columns(Spalte).Hidden = True
Else
.Columns(Spalte).Hidden = False
End If

Next Spalte

End With
End Sub

Das Problem ist, dass sich das Makro mit ActiveCell.Row immer nur für die erste markierte Zeile interessiert. Gibt es einen Befehl, der den ganzen markierten Zeilenbereich berücksichtigt?

Hier eine Beispieldatei
https://www.herber.de/bbs/user/132522.xlsm

P.S.: Ich kann Makros "lesen" (zur Not mit Einzelschritt), aber nicht selber schreiben. Meistens kopiere ich mir Fragmente aus dem Internet zusammen und passe sie auf meine Tabellen an, was in aller Regel ganz gut klappt. Zu dieser Problemstellung konnte ich bisher aber nichts sinnvolles finden.

  

Betrifft: AW: Spalten mit Leerzellen in mark. Zeilen ausblenden von: ChrisL
Geschrieben am: 14.10.2019 14:58:14

Hi Dominik

Z.B. so....

Sub SpaltenAusblenden()
Dim Spalte As Integer
Dim SpalteEnd As Integer

Application.ScreenUpdating = False

With Tabelle1
    SpalteEnd = .UsedRange.Columns.Count
    For Spalte = 1 To SpalteEnd
        .Columns(Spalte).Hidden = Rows.Count = WorksheetFunction.CountBlank(.Columns(Spalte))
    Next Spalte
End With
End Sub

cu
Chris


  

Betrifft: AW: Spalten mit Leerzellen in mark. Zeilen ausblenden von: Dominik
Geschrieben am: 14.10.2019 16:10:04

Hi chris,

vielen Dank für die schnelle Antwort.
Dein Makro funktioniert im Grunde, habe es eben ausprobiert.

Leider behandelt dein Vorschlag alle Zeilen gleich.
Worum es mir geht, ist, dass nur markierte Zeilen bearbeitet werden. Also wenn die Zeilen vorne über die Zeilennummer markiert werden.
Bei nicht markierten Zeilen dürfen auch ausgefüllte Zellen/Spalten ausgeblendet werden.

Ich hoffe ich drücke mich verständlich aus.


  

Betrifft: AW: Spalten mit Leerzellen in mark. Zeilen ausblenden von: Daniel
Geschrieben am: 14.10.2019 16:24:02

Hi

probiers mal mit dieser IF-Abfrage (der rest bleibt):

If WorksheetFunction.CountA(Intersect(Selection.EntireRow, Columns(i))) = 0 Then
ausgeblendet wird eine Spalte, wenn im selektierten Zellbereich alle Zellen dieser Spalte leer sind.
beachte, dass beim Ausblenden immer nur die ganze Spalte ausgeblendet werden kann.

Gruß Daniel


  

Betrifft: AW: Spalten mit Leerzellen in mark. Zeilen ausblenden von: Dominik
Geschrieben am: 14.10.2019 16:37:50

Ich probiere es aus und melde mich dann wieder. Kann sein, dass es bis morgen dauert.
Vielen Dank schon mal!


  

Betrifft: AW: Spalten mit Leerzellen in mark. Zeilen ausblenden von: Dominik
Geschrieben am: 15.10.2019 08:09:25

Hallo Daniel,

ich hab's ausprobiert und es funtkioniert, wie es sein soll!!
Musste halt "i" durch "Spalte" ersetzen.

Vollständig sieht es jetzt so aus:

Sub SpaltenAusblenden()
Dim Spalte As Integer
Dim SpalteEnd As Integer

With Tabelle1
SpalteEnd = .UsedRange.Columns.Count

For Spalte = 1 To SpalteEnd
If WorksheetFunction.CountA(Intersect(Selection.EntireRow, Columns(Spalte))) = 0 Then
.Columns(Spalte).Hidden = True
Else
.Columns(Spalte).Hidden = False
End If

Next Spalte

End With
End Sub

Sub SpaltenEinblenden()

Tabelle1.Columns.Hidden = False

End Sub

Ich werde dem jetzt noch ein Tastarurkürzel zuweisen und dann wars das.

Vielen Dank an alle, die sich sich die Mühe gemacht haben, mich zu unterstützen!


Beiträge aus dem Excel-Forum zum Thema "Spalten mit Leerzellen in mark. Zeilen ausblenden"