Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1388to1392
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalten ausblenden, wenn Leer

Spalten ausblenden, wenn Leer
06.11.2014 14:01:18
Björn
Guten Tag,
Ich habe eine Tabelle mit mehreren Filtern. Wenn ich diese Kriterien gesetzt habe, möchte ich, dass ein anderer Bereich geprüft wird. Zellen die zu diesen Kriterien keinen Eintrag haben, sollen ausgeblendet werden. Also die ganze zugehörige Spalte um das Ergebnis sofort zu sehen und nicht navigieren zu müssen. Die Beispielliste sollte es verdeutlichen. Wenn ich nach Sprachen und Französisch filter, möchte ich auf eine Schaltfläche klicken, damit die Personen ohne diese Kenntnisse ausgeblendet werden. Idealerweise werden diese bei einem weiteren Klick wieder eingeblendet. Ich komme dort nicht weiter. Vielleicht weiß jemaand etwas.
https://www.herber.de/bbs/user/93597.xlsm
Vielen Dank.
Grüße,
Björn

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten ausblenden, wenn Leer
06.11.2014 17:13:55
fcs
Hallo Björn,
warum ordnest du deine Daten nicht als Liste an (Daten mit Personennamen und Xen transponieren (um 90 drehen))?
Die Spaltentitel mit den Fähigkeiten obendrüber und du kannst die Filter in den Spalten direkt setzen ohne den Umweg über einen Auswahlbereich und anschließende Bearbeitung der Spalten per Makro.
Gruß
Franz

AW: Spalten ausblenden, wenn Leer
07.11.2014 07:24:31
Björn
Guten Morgen Franz,
bei der Menge an Daten wäre das Navigieren noch aufwendiger. Dies war ja nur die Beispieltabelle mit zwei Filtern. Im Original sind es sechs Filter und diese gehen über 2000 Zeilen runter.
Außer man könnte horizontal Filtern (Spalten filtern). Dann filtert man meinetwegen nach Sprache - Französisch und in Spalte Französisch dann nach "x". Habe dazu allerdings nichts brauchbares gefunden. Immer nur Notlösungen und dann gefällt mir ein Makro doch wesentlich besser.
Aber danke für die Idee.
Grüße,
Björn

Anzeige
AW: Spalten ausblenden, wenn Leer
07.11.2014 15:57:57
fcs
Hallo Björn,
hier ein Makro, das die Spalten ausblendet, in denen unter der Person leere Zellen sichtbar sind.
Alle Daten des Filterbreichs werden in ein Datenarray geladen. Ebenso die Nummern der sichtbaren Zeilen des Filterbereichs.
Anschließend werden die Spalteninhalte auf "" kommt in einer Spalte eine leere Zelle vor, wird die Spalte ausgeblendet.
Gruß
Franz
Sub Test2()
'Spalten ausblenden
Dim Zeile As Long, Zeile1 As Long, Zeile2 As Long, Spalte As Long, StatusCalc As Long
Dim wks As Worksheet
Dim arrData, arrVisible() As Long, bolHide As Boolean, intVisible As Integer
Set wks = ActiveSheet ' = Worksheets("Tabelle1")
'Makrobremsen lösen
With Application
.ScreenUpdating = False
.EnableEvents = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
End With
With wks
'Alle Spalten einblenden
.Columns.Hidden = False
Zeile1 = 3 'Zeile mit Spaltentitel/Personennamen
'Nummer der letzten Zeile des Tabellenobjekts.
With .ListObjects(1).Range
Zeile2 = .Row + .Rows.Count - 1
End With
'letzte Spalte in Zeile mit Spaltentiteln
Spalte = .Cells(Zeile1, .Columns.Count).End(xlToLeft).Column
'Daten des Filterbereichs in Array laden
arrData = .Range(.Cells(Zeile1 + 1, 1), .Cells(Zeile2, Spalte))
'Nummern der sichtbaren Zeilen des Filterbereichs in Array einlesen
For Zeile = Zeile1 + 1 To Zeile2
If .Rows(Zeile).EntireRow.Hidden = False Then
intVisible = intVisible + 1
ReDim Preserve arrVisible(1 To intVisible)
arrVisible(intVisible) = Zeile - Zeile1
End If
Next
'Spalten prüfen und ausblenden wenn leere Zellen vorkommen
For Spalte = 4 To UBound(arrData, 2)
bolHide = False
For intVisible = LBound(arrVisible) To UBound(arrVisible)
If arrData(arrVisible(intVisible), Spalte) = "" Then 'Zelle enthält keinen Text
bolHide = True
Exit For
End If
Next
If bolHide = True Then .Columns(Spalte).EntireColumn.Hidden = True
Next
End With
'Makrobremsen zurücksetzen
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = StatusCalc
End With
End Sub

Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige