Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen trotz Autofilter einblenden

Zeilen trotz Autofilter einblenden
17.02.2014 10:21:50
Klaus
Geschätztes Forum!
In einer Tabelle mit neun Spalten verwalte ich meine CDs. Zwecks Übersicht kann ich über eine Userform z.B. verschiedene Filtermodi aufrufen.
Ein simpler Auto-Filter zeigt alle Daten außer "leere Zellen" in Spalte F, also so eine Art Übersicht in der nur die ersten Zeilen jeder CD angezeigt werden.
(in Zeile 1 bis Zeile 50 der Beispieldatei dargestellt)
https://www.herber.de/bbs/user/89310.xlsx
Jetzt bin ich mit meinen bescheidenen VBA-Kenntnissen und der Unterstützung von Franz (gestern abend im Forum) am basteln eines Makros, das mir trotz Filtermodus alle Detaildaten einer CD anzeigt.
(in Zeile 70 bis Zeile 119 dargestellt)
mein derzeitiger Makrocode sieht folgendermaßen aus:

Sub CD_daten_oeffnen()  
Application.ScreenUpdating = False Cells(ActiveCell.Row, 6).Activate If ActiveCell.Value = "" Then Selection.End(xlUp).Select End If ActiveCell.Offset(1, 0).Range("A1").Select ActiveWorkbook.Names.Add Name:="LabelA", RefersToR1C1:="=CDA!" _ & ActiveCell.Address(ReferenceStyle:=xlR1C1) Selection.End(xlDown).Select ActiveCell.Offset(-1, 0).Range("A1").Select ActiveWorkbook.Names.Add Name:="LabelE", RefersToR1C1:="=CDA!" _ & ActiveCell.Address(ReferenceStyle:=xlR1C1) Range("LabelA:LabelE").Select Selection.EntireRow.AutoFit ActiveCell.Offset(-1, 3).Range("A1").Select End Sub
Es funktioniert soweit ganz gut, die im Filtermodus ausgeblendeten Zeilen zu selektieren.
Aber mit der vorletzten Codezeile "Selection.EntireRow.AutoFit" werden die selektierten Zeilen nicht wie gewünscht, und zwar ohne an den Zeilenhöhen (16 pix) etwas zu verändern und außerdem nicht vollständig angezeigt.
Ich bräuchte nun einen VBA-Code, der das vielleicht kann, und außerdem die ausgewählte CD im Listenausschnitt ganz nach oben scrollt (Zeile 1 enthält die Spaltenüberschriften und ist fixiert).
Besten Dank für Unterstützung
Klaus

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen trotz Autofilter einblenden
17.02.2014 13:55:05
fcs
Hallo Klaus,
mit dem Autofilter kannst du die Ansicht der Zeilen nicht so machen.
Was aber relativ einfach geht. Du kannst den Filter so setzen, dass umgeschaltet wird zwischen allen nicht leeren Zeilen in Spalte 6 und den Detaildaten zur CD in der aktiven Zeile.
Gruß
Franz
Sub FilterSetzen()
Dim wks As Worksheet
Set wks = ActiveSheet
If wks.AutoFilterMode = True Then
If (Not Application.Intersect(ActiveCell, wks.AutoFilter.Range) Is Nothing) _
And ActiveCell.Row > wks.AutoFilter.Range.Row Then
If wks.AutoFilter.Filters(1).On = True Then
wks.AutoFilter.Range.AutoFilter Field:=1
wks.AutoFilter.Range.AutoFilter Field:=6, Criteria1:=""
Else
wks.AutoFilter.Range.AutoFilter Field:=1, Criteria1:=wks.Cells(ActiveCell.Row, 1).Value
wks.AutoFilter.Range.AutoFilter Field:=6
End If
End If
Else
MsgBox "Für Funktionalität des Makros muß der Autofilter gesetzt sein"
End If
End Sub

Anzeige
AW: Zeilen trotz Autofilter einblenden
17.02.2014 17:42:27
Klaus
Servus Franz!
Danke für deinen Lösungsvorschlag - hab ich bereits eingebaut.
Gruß
Klaus
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Zeilen trotz Autofilter einblenden


Schritt-für-Schritt-Anleitung

  1. Autofilter aktivieren: Stelle sicher, dass der Autofilter in deiner Tabelle aktiviert ist. Gehe dazu zu Daten > Filter > AutoFilter.
  2. Daten filtern: Wähle die Spalte, die du filtern möchtest. In diesem Fall ist es sinnvoll, die Spalte F zu nutzen, um leere Zellen auszublenden.
  3. VBA-Makro erstellen: Öffne den VBA-Editor mit ALT + F11 und füge den folgenden Code ein:

    Sub FilterSetzen()
       Dim wks As Worksheet
       Set wks = ActiveSheet
       If wks.AutoFilterMode = True Then
           If (Not Application.Intersect(ActiveCell, wks.AutoFilter.Range) Is Nothing) _
           And ActiveCell.Row > wks.AutoFilter.Range.Row Then
               If wks.AutoFilter.Filters(1).On = True Then
                   wks.AutoFilter.Range.AutoFilter Field:=1
                   wks.AutoFilter.Range.AutoFilter Field:=6, Criteria1:=""
               Else
                   wks.AutoFilter.Range.AutoFilter Field:=1, Criteria1:=wks.Cells(ActiveCell.Row, 1).Value
                   wks.AutoFilter.Range.AutoFilter Field:=6
               End If
           End If
       Else
           MsgBox "Für Funktionalität des Makros muss der Autofilter gesetzt sein"
       End If
    End Sub
  4. Makro ausführen: Kehre zur Excel-Oberfläche zurück und führe das Makro aus. Es wendet den Filter auf die aktive Zeile an und zeigt die Detaildaten an.

Häufige Fehler und Lösungen

  • Excel filtert nicht alle Zeilen: Überprüfe, ob der Autofilter korrekt gesetzt ist und keine Filter auf leere Zellen angewendet werden.
  • Leere Zeilen werden nicht erkannt: Stelle sicher, dass die leeren Zellen in der gefilterten Spalte tatsächlich leer sind und nicht mit Leerzeichen gefüllt sind.
  • Makro funktioniert nicht: Prüfe, ob du das Makro korrekt gespeichert und die richtigen Berechtigungen in Excel gesetzt hast.

Alternative Methoden

  1. Manuelles Einblenden von Zeilen: Du kannst auch manuell alle Zeilen einblenden, indem du mit der rechten Maustaste auf die Zeilenüberschrift klickst und Einblenden auswählst.
  2. Filter fixieren: Um sicherzustellen, dass der Filter immer angezeigt wird, kannst du den Bereich mit Daten > Filter > Filter fixieren fixieren.

Praktische Beispiele

  • Beispiel 1: Wenn du nur die erste Zeile einblenden möchtest, kannst du das mit dem folgenden VBA-Code erreichen:

    Rows("1:1").EntireRow.Hidden = False
  • Beispiel 2: Um alle Zeilen anzuzeigen, verwende diesen Code:

    Cells.EntireRow.Hidden = False

Tipps für Profis

  • Erste Zeile immer einblenden: Wenn du sicherstellen möchtest, dass die erste Zeile immer sichtbar bleibt, kannst du die Zeile mit der Option „Fenster fixieren“ fixieren.
  • Automatisierung: Überlege, ob du komplexe Filterlogik in deinen Makros einbauen kannst, um den Filterprozess zu automatisieren.

FAQ: Häufige Fragen

1. Warum filtert Excel nicht alle Zeilen?
Das kann daran liegen, dass einige Zeilen ausgeblendet sind oder der Autofilter nicht korrekt eingestellt ist.

2. Wie kann ich die erste Zeile einblenden?
Du kannst die erste Zeile einfach markieren und mit der rechten Maustaste auf Einblenden klicken oder VBA verwenden, um sie sichtbar zu machen.

3. Was tun, wenn der Filter nur bis zu einer bestimmten Zeile geht?
Überprüfe die Filtereinstellungen und stelle sicher, dass alle relevanten Daten im gefilterten Bereich enthalten sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige