Wie kann man Filter in Excel sowohl für Spalten wie auch Zeilen gleichzeitig nutzen?

... komplette Frage anzeigen

3 Antworten

Das Problem ist der Zeilenfilter, zu dem ich keine Lösung kenne. Es gibt nur einen Spaltenfilter. Alle Spalten, außer B, F und H musst du manuell ausblenden.

Antwort bewerten Vielen Dank für Deine Bewertung

rausfiltern=wegfiltern oder rausfiltern= als einzige zeigen?

Immer die gleichen oder brauchst du einen Auswahldialog?

Mit einem Makro ginge das schon. Wenn immer die gleichen, wäre eine (ggf verborgene) Zeile (1:1) sinnvoll, die 1 für zu verbergende Zellen enthält. Ginge aber auch per Vorgabe in einem Dialog, dann wärs frei veränder-/anwählbar.

Im alten VBA-Dialekt (nur als grobe Orientierung, nicht ausprobiert):

  • Sub AusblendenEinserSpalten()
  • dim c
  • For each c in Rows(1).cells.xlspecialcells(xlconstants) 'jetzt xlcelltypeconstants? und .cells dazwischen notwendig? kann ich mir nie merken!
  • if c.value = 1 then
  • c.entirecolumn.visible = false  'oder hidden = true ? kann ich mir auch nicht merken!
  • Else c.entirecolumn.visible = true
  • end if
  • End sub

dieses Makro in ein Modul kopieren und einem Knopf zuweisen, am besten in einem fixierten Zeilen+Spaltenbereich links oben. FERTIG (wenn überprüft)

Für variables Ausblenden: Input-Box mit Vorgabe-String und Auswertung nötig.

A wäre Spalte(Code("A")-64), aber der String E, F, H müsste erst aufgelöst werden. Kein prinzipielles Problem, aber etwas länglich. Mehr als die ersten 26 Spalten? Dann würde es noch etwas komplizierter!

Melde dich bei Bedarf nochmal!

Beim Ausblenden bleibt die original-Spaltenbreite erhalten. Wird dagegen die Breite auf zB 1 Px minimiert, müsste die Spaltenbreite neu festgeldegt werden.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
22.02.2016, 17:44

bei Kleinbuchstaben (Code("a")-96 oder Code(UCase("a"))-64, das würde in jedem Fall richtig.

Anstatt "a" ginge auch ein Bezug.

0
Kommentar von Ninombre
22.02.2016, 17:50

Eben mal nachgestellt, weil ichs gerade offen hatte:

das mit xlspecialcells mag irgendwie nicht, hab ich aber auch nicht mehr viel rumprobiert. Ansonsten läufts mit hidden true und false.

Wäre also ein funktionierenden Lösungsansatz

Sub AusblendenEinserSpalten()
Dim c
For Each c In Range("A1:Z1") 'Rows(1).Cells.xlspecialcells(xltypeConstants) 'jetzt xlcelltypeconstants? und .cells dazwischen notwendig? kann ich mir nie merken!
If c.Value = 1 Then
c.EntireColumn.Hidden = True 'oder hidden = true ? kann ich mir auch nicht merken!
Else: c.EntireColumn.Hidden = False
End If
Next
End Sub
1

Wie definierst Du irrelevant? Über VBA könnte man alle leeren Zeilen und Spalten ausblenden, aber ich kann bei Dir keine Regel erkennen, da ist es automatisiert schwierig.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?