Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
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

Filter horizontal nach DropDown Auswahl

Filter horizontal nach DropDown Auswahl
14.12.2017 10:30:14
lemmi
Hallo zusammen,
ich möchte mittels eines Makros einen horizonalfilter umsetzten.
In F7 habe ich ein DropDwon auswahl: Meier; Müller ;Hund und Katze etc.
Die Spalten C7... D7 etc. bis CX7 sind wechselden Inhalten, eben Meier..Müller ...Katze... Hund eingetragen.
Wähe ich nun in F7 Meier aus, sollen nur die Spalten ab C7 mit Meier sichtbar sein.
Ach ja, wenn nichts ausgewählt wird, sollen alle Spalten sichtbar sein.
Könnt Ihr mir mit einem Mako weiterhelfen?
LG
Lemmi

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 11:28:01
EtoPHG
Hallo Lemmi,
Du blendest alle Spalten aus, ausser der in welcher der Dropdown steht?
Heisst das, dass F7 nie ausgeblendet wird?
Aber wie soll ich denn alle wieder einblenden?
Die ganze Anfrage ist nicht konsistent formuliert!
Gruess Hansueli
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 11:43:37
lemmi
Hallo,
oh! Sorry für die unpräzie Beschreibung.
Bis Spalte F sollen alle Spalten immer sichtbar beleiben.
Die Spalte G und folgende soll gefiltert werden.
Gruß
Lemmi
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 12:00:39
Mullit
Hallo,
ist tatsächlich etwas wackelig formuliert, aber im Prinzip geht sowas mit nem Chg-Event, kannst Du Dir ja zurecht schnitzen...
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = (Target.Address = "$F$7")
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim objCell As Range
With Target
    If .Address = "$F$7" Then
      Application.ScreenUpdating = False
      With Range(Mid$(String:=.Validation.Formula1, Start:=2))
            Set objCell = .Find(What:=Trim$(Target.Value), _
                 LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
            If Not objCell Is Nothing Then
              .EntireColumn.Hidden = False
              Range(Columns(Target.Column + 1), Columns(objCell.Column - 1)).EntireColumn.Hidden = True
            Else
              .EntireColumn.Hidden = False
              Set objCell = .Find(What:=Trim$(Target.Value), _
                 LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
              With Target
                  If objCell.Column > .Column + 1 Then _
                    Range(Columns(.Column + 1), Columns(objCell.Column - 1)).EntireColumn.Hidden = True
              End With
            End If
      End With
      Set objCell = Nothing
      Application.ScreenUpdating = True
    End If
End With
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit
Anzeige
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 12:27:17
lemmi
Hallo,
ich habe doch, es ist immer besser, nun eine Datei haochgeladen.
...ich mache noch etws falsch, und denke, das Du bestimmt dies sofort erkennst.
Bei mir läuft es noch nicht!
https://www.herber.de/bbs/user/118323.xlsx
Gruß
Lemmi
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 15:43:45
Mullit
Hallo,
ok, habs Dir mal auf Deinen Bedingungen angepasst, da Du doppelte Vorkommen hast, wird nach jedem neuen Anwählen ab dem nächsten Fund eingeblendet, per Doppelklick auf Dein Dropdown kannst Du das Ausblenden resetten, das sind übrigens Ereignisprozeduren, d.h. der Code kommt in das Modul Deines Auswahl-Blattes...
' ********************************************************************** 
' Modul: Tabelle1(Auswahl) Typ: Klassenmodul des Tabellenblattes 
' ********************************************************************** 

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
    If .Address = "$G$7" Then
       Cancel = True
       Range(.Offset(0, 1), Cells(.Row, Columns.Count).End(xlToLeft)).EntireColumn.Hidden = False
    End If
End With
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim objCell As Range
With Target
    If .Address = "$G$7" Then
      Application.ScreenUpdating = False
      With Range(.Offset(0, 1), Cells(.Row, Columns.Count).End(xlToLeft))
            Set objCell = .Find(What:=Trim$(Target.Value), _
                 LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
            If Not objCell Is Nothing Then
              .EntireColumn.Hidden = False
              Range(Columns(Target.Column + 2), Columns(objCell.Column - 1)).EntireColumn.Hidden = True
            Else
              .EntireColumn.Hidden = False
              Set objCell = .Find(What:=Trim$(Target.Value), _
                 LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
              With Target
                  If objCell.Column > .Column + 2 Then _
                    Range(Columns(.Column + 2), Columns(objCell.Column - 1)).EntireColumn.Hidden = True
              End With
            End If
      End With
      Set objCell = Nothing
      Application.ScreenUpdating = True
    End If
End With
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit
Anzeige
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 16:06:49
Lemmi
Hallo,
vielen Dank!...Das mit dem Doppel-Chlick ist besonders gut.
Da ich aber mindesten 100 Spalten habe in dem sich 5-10 Merkmale befinden, würde ich noch mal fragen wollen, ob es möglich ist bei DropDown-Auswahl einer Merkmals auch nur diese sehe! Also alle Hunde oder alle Katzen. Im Moment sehe ich immer noch, nach ich den Filter gesetzt habe eine andere Teilmenge.
Es währe schön, wenn das noch klappen könnte!
GRuß
Lemmi
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 17:49:28
Mullit
Hallo,
klar das geht auch, da guck Dir mal in der Hilfe das Beispiel zur .Find-Methode an, da wird angeführt wie Du mit einer Do-Loop-Schleife über die .FindNext-Methode mehrere Treffer verarbeitest, die müsstest Du Dir zwischenspeichern und dann die jew. Spalten ausblenden, vielleicht kriegst Du ja schon selbst was hin...
Gruß, Mullit
Anzeige
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 19:37:12
Lemmi
Hallo,
?ja bestimmt.....
das ist dann wohl noch ein lager Weg....mmmh! Könntest Du vieleicht doch nach mal Hand anlegen?
Werde wohl sonst das Ziel nicht so wirklich erreichen!
Wäre sehr nett!
LG
Lemmi
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 21:01:24
Gerd
Moin Lemmi,
ins Modul der Tabelle:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$7" Then
With Range("H7:CX7")
Application.ScreenUpdating = False
.EntireColumn.Hidden = False
If Target  "" Then .RowDifferences(Target).EntireColumn.Hidden = True
Application.ScreenUpdating = True
End With
End If
End Sub
Gruß Gerd
Anzeige
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 21:26:25
Lemmi
Hallo Gerd,
vielen Dank!
ich bekomme immer einen Laufzeitfehler in der nachfolgenden Zeile gemeldet!
If Target "" Then .RowDifferences(Target).EntireColumn.Hidden = True
WAs mach ich falsch?
Gruß
MFg
AW: Filter horizontal nach DropDown Auswahl
14.12.2017 21:53:09
Daniel
Hi
bei der .RowDifference-Methode muss die Zelle, aus der der Vergleichswert stammt (der Wert in der Klammer) Bestandteil des durchsuchten Zellbereichs (die Zellen vor der Klammer!) sein, nur dann funktioniert diese Methode.
da bei dir sich die zu filternden Zellen direkt an die eingabezelle anschließen, kannst du mit dieser Methode arbeiten, allerdings mit dieser kleinen Anpassung:
With Range("G7:CX7")
Gruß Daniel
Anzeige
AW: Filter horizontal nach DropDown Auswahl
15.12.2017 06:21:56
lemmi
Hallo Daniel,
Perfekt!!!!!
Vielen Dank!
Gruß
Lemmi

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige