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

1 Filter manuell wählen, Rest automatisch setzen

1 Filter manuell wählen, Rest automatisch setzen
01.03.2016 07:19:36
Goldfisch
Guten Morgen zusammen,
ich kann irgendwie keine Datei hochladen, deshalb mal so.
Meine Tabelle sieht ungefähr so aus:
Aufgabe Meilenstein Soll Ist
1 M10 Started
2 M20 25%
3 M20 Started
4 M20 Finished
5 M30 50%
6 M30 Finished
7 M30 Started
8 M30 Finished
9 M30 Finished
10 M40 Finished
11 M40 75%
12 M40 Started
13 M40 50%
14 M40 Finished
15 M40 50%
16 M50 75%
17 M50 Finished
18 M50 Started
19 M50 25%
20 M55 Finished
Nun möchte ich, dass bei Auswahl von z.B. M50 die Meilensteine davor automatisch mitgefiltert werden, also M10-M40 werden automatisch ausgewählt. Ich hab das mal mit Makro aufzeichnen versucht, aber da kann ich das Ganze ja nicht als "Falls das gefiltert wird, passiert das" darstellen.
Hat da irgendjemand einen guten Vorschlag, am besten gleich Code? Bin zwar grad dabei mich ein bisschen in VBA einzuarbeiten, aber das geht leider nicht so schnell ;)
Vielen Dank schonmal an der Stelle!
Grüße, Goldfisch

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

Betreff
Datum
Anwender
Anzeige
AW: 1 Filter manuell wählen, Rest automatisch setzen
01.03.2016 10:11:25
ChrisL
Hi
Der Autofilter liefert kein Event, welches du verwenden könntest.
Darum müsstest du dir deinen eigenen Autofilter basteln. Z.B.
https://www.herber.de/bbs/user/103993.xlsm
Private Sub ComboBox1_Change()
Dim i As Long
Application.ScreenUpdating = False
Cells.EntireRow.Hidden = False
For i = 2 To Range("A65536").End(xlUp).Row
If Right(Cells(i, 2), Len(Cells(i, 2)) - 1) 

Private Sub UserForm_Initialize()
Dim i As Long
For i = 2 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range(Cells(2, 2), Cells(i, 2)), Cells(i, 2)) = 1 Then _
ComboBox1.AddItem Cells(i, 2)
Next i
End Sub

Das Kleiner-Gleich-Zeichen musst du evtl. in ein "grösser" Zeichen ändern.
cu
Chris

Anzeige
AW:1 Filter manuell wählen, Rest automatisch
01.03.2016 17:21:27
Goldfisch
Hi, vielen Dank schonmal für die Antwort, das sieht sehr vielversprechend aus!!
Da sollte ich jetzt schaffen, das in meine Excel einzubauen. (Oder gibt es einen Trick beim Übertragen?)
Wie kann ich jetzt wieder auf den "Normalzustand" ohne Filter zurückkommen?
Normal würde ich das machen über einen Button mit hinterlegtem Makro:
With ActiveWorkbook.ActiveWorksheet
If .FilterMode Then
.ShowAllData
End If
End With
Kann ich das hier auch so machen oder muss da noch was modifiziert werden?
Und eine wahrscheinlich dämliche Frage: Kann ich die anderen Spalten falls notwendig noch normal mit dem Excel AutoFilter filtern oder widerspricht sich das irgendwie?
Und noch eine Bitte (Ich hoffe ich überspanne den Bogen jetzt nicht): Falls du noch einen Code / eine Datei hochlädtst, kannst du mir vielleicht kurz kommentieren was der jeweilige Befehl genau bewirkt? Dann lern ich gleich noch wirklich was aus der Sache :)
Tausend Dank schonmal!!!!

Anzeige
AW: AW:1 Filter manuell wählen, Rest automatisch
02.03.2016 08:49:52
ChrisL
Hi
Um einzublenden:
Cells.EntireRow.Hidden = False
Kombination mit Autofilter musst du testen. Geht halbwegs :)
Deinen Input betr. Code auskommentieren nehme ich mir zu Herzen. Dennoch finde ich es immer schwierig, weil es vom Know-How des Gegenübers abhängt. Wenn z.B. das Verständnis für eine For...Next Schleife fehlt, dann fehlt der Zusammenhang und ich könnte lange erklären. Andererseits gibt es vieles, was irgendwie selbsterklärend ist.
Trotzdem kurz eine Erklärung:
- Der Code im Modul 1 habe ich vergessen zu löschen, der tut nichts zur Sache
- Im Initialize füllst du die ComboBox ohne Duplikate (Verwendung Tabellenfunktion ZÄHLENWENN)
- Im Change wird die Nummer (aus Mxx) zwischen Tabelle und ComboBox verglichen
cu
Chris

Anzeige
AW: AW:1 Filter manuell wählen,Rest automatisch
02.03.2016 19:02:09
Goldfisch
Hi Chris,
okay dann steig ich da schonmal ein bisschen mehr durch, danke!!
Ich hab jetzt mal versucht, meinen Code an meine Arbeitstabelle anzupassen (da steht einfach noch mehr unnötiger mist drin, von dem ich dachte, dass er komplett irrelevant ist für den Code).
Jetzt funktioniert das alles auch soweit, nur immer wenn ich M40 auswähle filtert er nicht M10-M30 sondern M50 und aufwärts.
Wie hab ich da jetzt den Code zerstört? Ich dachte, ich hätte nur die zugewiesenen Zellenbereiche geändert (also Cells auf meine Zeilen und Spalten angepasst). Wahrscheinlich stell ich mich da extrem blond an, tut mir leid!
Falls du den Code brauchst würde ich dir den morgen dann zukommen lassen? Oder kannst du mir das auch so beantworten?
Und nun noch meine (hoffentlich) letzte Frage: Wenn ich gefiltert hab, wie komm ich dann zurück? Meine bisherige Lösung, die ich in meinem letzten Beitrag erklärt hab, funktioniert leider nicht. Habs dann mal über Unload Me versucht aber das schließt ja nur das Fenster und setzt nichts zurück (dafür hat meine UserForm jetzt einen Close Button :D)
Vielen, vielen Dank auch jetzt wieder an deine unermüdliche Geduld mit mir!! :)
Viele Grüße,
Goldfisch

Anzeige
AW: AW:1 Filter manuell wählen,Rest automatisch
03.03.2016 08:14:22
ChrisL
Hi
Problem 1 kann ich nicht nachvollziehen. Da müsstest du mal eine Beispieldatei laden.
Und zu Problem 2:
Cells.EntireRow.Hidden = False
cu
Chris

AW: AW:1 Filter manuell wählen,Rest automatisch
04.03.2016 07:13:04
Goldfisch
Hi Chris,
hier die Beispieldatei
https://www.herber.de/bbs/user/104085.xlsm
Das erkennst du sicher innerhalb von 2 Sekunden, aber das eine Makro hat nichts mit meinem Problem zu tun, das gleicht nur 2 Spalten ab und färbt ein wenn sie sich (nicht) entsprechen.
Vielen Dank!!
Liebe Grüße
Goldfisch

AW: AW:1 Filter manuell wählen,Rest automatisch
04.03.2016 08:35:38
ChrisL
Hi
Ich kann es auch so nicht nachvollziehen. Setze ich G40 in der hochgeladenen Datei funktioniert es.
Was ich schon feststellen kann, ist dass sich der Autofilter nicht unbedingt mit dem anderen Filter verträgt.
Was mir auch auffällt, ist ein kleiner Tippfehler (Blattnamen):
Sub FilterEntfernen()
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Checkliste").Cells.EntireRow.Hidden = False
Application.ScreenUpdating = True
End Sub
cu
Chris

Anzeige
AW: AW:1 Filter manuell wählen,Rest automatisch
04.03.2016 08:56:49
Goldfisch
Hi,
also wenn du G40 auswählst, filtert er dir G10, G20, G30 und G40 (Soll)? Weil wenn ich G40 auswähle filtert er mir im Moment G50, G55, G60, G70, G80 und G90.
Aber das ist doch der gleiche Code, wieso macht er da bei dir was anderes? Oder hab ich dich da falsch verstanden?
Tut mir leid, aber das Thema lässt mich echt nicht los, ich möchte das einfach verstehen!
Un danke, das mit dem Tippfehler hab ich auch gefunden kurz nachdem ich den Beitrag gepostet hatte. :D
Dir einen schönen Tag und ein schönes Wochenende!
LG Goldfisch

AW: AW:1 Filter manuell wählen,Rest automatisch
04.03.2016 09:34:56
ChrisL
Hi
Was ich mir seit dem ersten Beitrag nicht sicher bin. Wenn du von "filtern" sprichst, meinst du ein- oder ausblenden? (über grösser/kleiner Zeichen steuerbar).
Ich erkenne beim besten Willen keinen Unterschied, ob ich nun G40, G70 oder was anderes filtere.
cu
Chris

Anzeige
AW: AW:1 Filter manuell wählen,Rest automatisch
04.03.2016 09:51:48
Goldfisch
Hi,
ich möchte bei der Auswahl von z.B. G50 erreichen, dass alle kleineren Meilensteine und der ausgewählte Meilenstein selber also G10, G20, G30, G40 und G50 eingeblendet sind und G60, G70, G80 und G90 ausgeblendet werden. Und entsprechend das Ganze eben für jeden Meilenstein. Jetzt klarer?
Aber gut, dann versuch ich das vielleicht mal mit den grösser/kleiner Zeichen einfach ein bisschen Trial & Error.
LG Goldfisch

AW: AW:1 Filter manuell wählen,Rest automatisch
04.03.2016 10:12:28
ChrisL
Hi
So...
Private Sub ComboBox1_Change()  'Nummer zwischen Tabelle und ComboBox vergleichen
Dim i As Long
Application.ScreenUpdating = False
Cells.EntireRow.Hidden = False
Cells.EntireColumn.Hidden = False
For i = 6 To Range("A65536").End(xlUp).Row
If Right(Cells(i, 6), Len(Cells(i, 6)) - 1) > Right(ComboBox1, Len(ComboBox1) - 1) Then _
Rows(i).EntireRow.Hidden = True
Next i
Application.ScreenUpdating = True
End Sub

Private Sub UserForm_Initialize() 'ComboBox fuellen ohne Duplikate
Dim i As Long
For i = 6 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
If WorksheetFunction.CountIf(Range(Cells(6, 6), Cells(i, 6)), Cells(i, 6)) = 1 Then _
ComboBox1.AddItem Cells(i, 6)
Next i
End Sub

cu
Chris

Anzeige
AW: AW:1 Filter manuell wählen,Rest automatisch
04.03.2016 10:49:12
Goldfisch
Waaaah es funktioniert, tausend Dank, du bist ein Schatz!!! :)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige