Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Nach Filterung leere Spalten ausblenden

Nach Filterung leere Spalten ausblenden
29.11.2016 15:44:45
Toni
Hallo zusammen,
ist es möglich durch bzw. nach einer Filterung leere Spalten auszublenden?
Zum Beispiel ich filtere nach einem bestimmten Bauteil, in den Spalten sind mehrere Produktionsschritte eingetragen. Ich möchte dann nach der Filterung nur die betroffenen Produktionsschritte für das jeweilige Bauteil (Spalten) angezeigt bekommen.
Bei folgendem Code werden alle leeren Spalten ausgeblendet, aber ohne Bezug auf einen Filter. Dies führt dazu, dass wenn ich filtere, die leeren spalten trotzdem angezeigt werden. Wäre super, wenn jemanden den Code so verändern könnte, dass das mit der Filterung klappt. Mir fällt leider nichts mehr ein.
Option Explicit
Public blnhidden As Boolean
Sub zeilen_spalten_aus_ein()
Dim rng As Range
Dim n As Integer
Set rng = Range("C7:TM32")
Application.ScreenUpdating = False
If Not blnhidden Then
blnhidden = True
For n = 1 To rng.Rows.Count
If Application.CountIf(rng.Rows(n), "") = rng.Columns.Count Then rng.Rows(n).Hidden = blnhidden
Next
For n = 1 To rng.Columns.Count
If Application.CountIf(rng.Columns(n), "") = rng.Rows.Count Then rng.Columns(n).Hidden =  _
blnhidden
Next
Else
blnhidden = False
rng.Rows.Hidden = blnhidden
rng.Columns.Hidden = blnhidden
End If
Application.ScreenUpdating = True
End Sub

Eine Antwort wäre super, vorab vielen Dank!
VG
Toni

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach Filterung leere Spalten ausblenden
29.11.2016 21:36:06
fcs
Hallo Toni,
probiere es mal mit dem folgenden Makro.
Hier wird die Funktion Subtotals (deutsch: TEILERGEBNIS) mit der Funktion ANZAHL2 (Zähltnach dem Filtern (Autofilter) sichtbare Zellen mit Inhalt) genutzt. Wenn Wert = 0 dann Spalte ausblenden
LG
Franz
Sub LeereSpaltenAusblenden()
Dim rng As Range
Dim n As Integer
Set rng = Range("C7:TM32")
Application.ScreenUpdating = False
rng.EntireColumn.Hidden = False
For n = 1 To rng.Columns.Count
rng.Columns(n).Hidden = _
Application.WorksheetFunction.Subtotal(3, rng.Columns(n)) = 0
Next
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Nach Filterung leere Spalten ausblenden
30.11.2016 09:53:31
Toni
Hi Franz,
vielen Dank für deinen Vorschlag.
Die Lösung hilft mir leider noch nicht ganz weiter, ich habe dir jetzt mal die Datei angehängt. Hier hab ich dir in 4 Schritten erklärt was mein Ziel ist. Wäre super, wenn du dir das noch einmal anschauen kannst. Natürlich auch jeder andere der mir hier helfen kann;).
https://www.herber.de/bbs/user/109816.xlsm
Vorab vielen Dank.
VG
Toni
AW: Nach Filterung leere Spalten ausblenden
01.12.2016 06:09:00
fcs
Hallo Toni,
ich hab schon mal angefangen daas Makro anzupassen.
Ich hab ein Problem mit Zellen, die Formeln enthalten und in deiner Beispiel-Datei einen Fehlerwert ausspucken (#BEZUG! oder #DIV0!).
Wie sollen diese Zellen beim Ausblenden bewertet werden? Als "" also ggf ausblenden
Gruß
Franz
Anzeige
AW: Nach Filterung leere Spalten ausblenden
01.12.2016 14:12:56
Toni
Hallo Franz,
vielen Dank. Ja genau, da hast du Recht, wenn hier in den Zellen kein Inhalt vorhanden ist oder O, #Bezug!,#DIV!, dann sollen die Zellen ausgeblendet werden.
Ich bin gespannt auf deine Lösung.
Viele Grüße.
Toni
AW: Nach Filterung leere Spalten ausblenden
01.12.2016 21:13:06
fcs
Hallo Toni,
hier meine Lösung.
Es war schon eine kleine Puzzle-Arbeit, den Autofilter und das darüber gelegte Makro auf einen Nenner zu bringen.
Gruß
Franz
Option Explicit
Public blnhidden As Boolean
Sub zeilen_spalten_aus_ein()
Dim rng As Range
Dim n As Integer
Dim Zei_1 As Long, Zei_L As Long
Dim Spa_1 As Long, Spa_L As Long, Zei As Long
Dim bolHideSpa As Boolean
Dim wks As Worksheet
Dim arrHidden() As Boolean
Zei_1 = 4 '1. Zeile des zu filternden Bereich - konstanter Wert ggf. anpassen
Spa_1 = 3 '1. Spalte des zu filternden Bereichs konstanter Wert ggf. anpassen
Set wks = ActiveSheet 'Arbeitsblatt in dem gefiltert werden soll
With wks
Application.ScreenUpdating = False
If Not blnhidden Then
'letzte angezeigte Zeile mit Daten in Spalte A = letzte Zeile des zu filternden  _
Bereichs
Zei_L = .Cells(.Rows.Count, 1).End(xlUp).Row
If Zei_L  "" Then
fncAusblendenSpalte = False
Exit For
End If
End If
End If
End If
Next
End Function
Public Function fncAusblendenZeile(Bereich As Range) As Boolean
'Bereich ist ein Zellbereich einer Zeile - alle Spalte sind eingeblendet.
Dim Zelle As Range  'Zelle imbereich
fncAusblendenZeile = True
For Each Zelle In Bereich.Cells
If Not IsError(Zelle.Value) Then 'Zellen mit Fehler ggf. ausblenden
If Not Zelle.Value = 0 Then 'Zellen mit Wert 0 ggf. ausblenden
If Zelle.Value  "" Then
fncAusblendenZeile = False
Exit For
End If
End If
End If
Next
End Function

Anzeige
AW: Nach Filterung leere Spalten ausblenden
07.12.2016 15:38:58
Toni
Hallo Franz,
vielen Dank für deine Hilfe und die Mühe. Der Code hilft mir sehr weiter!
Viele Grüße,
Toni

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige