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

Autofilter benötigt

Autofilter benötigt
Isolde
Hallo Profis,
Die Problematik lässt sich schwerer beschreiben, als sie zu verstehen ist.
Bitte dazu die Spalte D in der Beispieltabelle (im Vgl. zu Spalte A) betrachten:

https://www.herber.de/bbs/user/71935.xls
Wie man in der Tabelle sieht gibt es Teilenummern, welche ich für eine optimale Filter-Suche bereits in drei Teile entkettet habe.
Es gibt Teile (Teilenummern z.B. 5Q0 803 105) welche beschnitten werden. Einige Teile werden erst gemeinsam Beschnitten (sie hängen noch zusammen) und werden erst später getrennt. Solche Teile (Doppelteile) erkennt man daran, dass sie wenn sie gemeinsam beschnitten wurden, zwei Endnummer – Paare haben : 5Q0 803 105/106. Die Zahl nach dem Schrägstrich ist immer die darauf Folgende gerade Zahl.
Wenn man in Spalte D z.B. nach der Endnummer „105“ filtert, dann soll Excel auch diejenigen herausfiltern bzw. anzeigen, welche als Endnummer 105 enthalten, also auch 105/106. Da Excel nun zur 105 ebenso die 105/106 gefunden hat und diese zusammen gehören, sollen ebenso die mit der Endnummer 106 angezeigt werden.
Das Filterergebnis in Spalte D wäre also: 105 und ggf. 105/106 und 106.

106 darf Excel natürlich nur anzeigen wenn die Zahl in Verbindung mit der 105 auftaucht (105/106).
Das gleiche soll natürlich auch mit den anderen Zahlen funktionieren.
Also wenn man nach 106 filtert, müsste Excel die mit der 106, 105/106 und schließlich die mit der 105 anzeigen.
Ich freue mich über eure Vorschläge
LG Isolde

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Autofilter benötigt
15.10.2010 14:41:43
Tino
Hallo,
Du kannst beim Autofilter (Benutzerdefiniert) angeben enthält 105 oder 106 oder was auch immer.
Gruß Tino
AW: Autofilter benötigt
15.10.2010 14:53:32
Isolde
Danke, das weis ich.
Es wird hier aber davon ausgegangen, dass man vorher nicht weis, ob dem Teil ein weiteres zuzuordnen ist oder nicht.
Wenn man z.B. 105 sucht weis man nicht ob man auch nach 104 oder 106 filtern muss.
Das müsste Excel dann der Restriktionen erkennen.
AW: wie wäre es mit VBA und Spezialfilter?
16.10.2010 14:07:45
Isolde
Hallo Tino,
also dein Filter funktioniert schon mal ganz gut aber noch nicht hinreichend effizient:
Zum einem ist noch ein kleiner Fehler drin, das heißt wenn man z.B. für Spalte D 115 eingibt dann erscheinen auch die Nummern mit 116. Das ist aber Falsch weil nur dann die Nummern mit 116 zugehörig sind, wenn es auch eine 115/116 gibt!!
Was aber nicht immer der Fall ist (lese hierzu ggf. bitte noch mal meinen erste Anfrage).
Zum anderem ist es nachteilig, dass die normal gesetzten Autofilter verschwinden und inaktiviert werden, wenn man den für Spalte D bedient.
Den folgenden Code habe ich in einem Forum gefunden: (http://www.supportnet.de/fresh/2006/5/id1339399.asp)
Es ist ein Code, der automatisch nach dem Zellinhalt der aktiven Zelle filtert.
Sub FilterSchnell()
Dim SpNr As Integer
Dim Such As String
AutoFilterMode = False
SpNr = ActiveCell.Column
Such = ActiveCell.Value
Selection.AutoFilter Field:=SpNr, Criteria1:=Such, Operator:=xlAnd
End Sub
Bsp:
Aktive Zelle ist D20 mit Inhalt "115".
Es werden alle Datensätze gefiltert, die in Spalte D die „115“ enthalten.
Kopiere den Code in ein Standardmodul und weise das Makro einer Schaltfläche zu.
Kannst du diesen umschreiben, dass er nur Spalte D nach der aktiven Zelle in Spalte D filtert und noch die oben genannte Korrektur von Deinem Filter einprogrammieren?
Das wäre toll, ich bin leider mit meinem Wissensstand da noch nicht so weit.

Liebe Grüße
Isolde
Anzeige
AW: wie wäre es mit VBA und Spezialfilter?
16.10.2010 15:09:02
Tino
Hallo,
wir brauchen nur die Formel dafür etwas anpassen.
Private Sub ComboBox1_Change()
Dim nZ1 As String
Dim MaxRow&
If Me.FilterMode Then Me.ShowAllData
If ComboBox1.ListIndex > 0 Then
  Application.ScreenUpdating = False
    nZ1 = Trim(ComboBox1)
    nZ1 = Format(nZ1, "000")
    Range("E4").FormulaR1C1 = _
    "=OR((COUNTIF(RC4,""" & nZ1 & "*"")>0),(COUNTIF(RC4,"" " & nZ1 & "*"")>0),(COUNTIF(RC4,""*" & nZ1 & """)>0))"
    MaxRow = Cells(Rows.Count, 4).End(xlUp).Row
    Range("D3:E" & MaxRow).AdvancedFilter xlFilterInPlace, Range("E3:E4")
    Range("E4").Clear
  Application.ScreenUpdating = True
End If
End Sub
Gruß Tino
Anzeige
kürzer…
16.10.2010 15:15:39
Tino
Hallo,
geht auch mit dieser
Range("E4").FormulaR1C1 = _
"=COUNTIF(RC4,""*" & nZ1 & "*"")>0"
Dein Code den Du mir hier gezeigt hast, ist genau der Vorschlag aus meiner ersten Antwort,
den wolltest Du nicht.
Gruß Tino
AW: kürzer…
16.10.2010 15:38:00
Isolde
DANKE TINO,
werde es erst mal testen...meld mich dann zurück!!!
Fast perfekt !!!!
18.10.2010 12:35:36
Isolde
Hallo Tino,
Bei deinem vorletzten Code stimmt inhaltlich jetzt fast alles.
Leider ist es nur so, dass wenn man z.B. über den normalen Autofilter in Spalte B z.B. die Vorauswahl trifft, z.B. erst mal alle Teile anzeigen die mit „1S0“ beginnen und anschließend in Spalte C alle anzeigen lässt die als Mittelnummer z.B. 803 enthalten, wird diese Vorauswahl über deinen Filter für Spalte D wieder „zerschossen“.
Des weiteren kann meine Tabelle in Zukunft auch noch mehr ausgefüllte Zeilen enthalten, so dass der Filterbereich des Spezialfilters nicht unbedingt bis rund Zeile 800 ausreichen muss.
Du hattest in Deiner letzten Antwort geschrieben:
„Dein Code den Du mir hier gezeigt hast, ist genau der Vorschlag aus meiner ersten Antwort,
den wolltest Du nicht.“
Soweit ich das hier nachvollziehen kann, hattest Du mich in Deiner ersten Antwort lediglich auf den Benutzerdefinierten Autofilter verwiesen – den wollte ich nicht, sondern ein Makro!!! MISSVERSTÄNDNIS?

Ich weis, dass mein Anliegen hier sicher nicht sehr einfach umsetzbar ist, für den optimalen Filter müsste im Prinzip nur noch Deine Formel/Makro in ein normales Makro überführt werden:
Ich stelle mir das so vor:
Man trifft über den ganz normalen Autofilter seine Auswahlen. Für Spalte D wählt man z.B. 115 aus. Nun werden natürlich „fälschlicherweise“ nicht wie nach Deiner richtigen Programmierung die mit der 115/116 und 116 angezeigt, sondern nur die 115, was aber erst mal so gut ist!
Der normale Autofilter in Spalte D wurde also aktiviert. Jetzt klickt man in Spalte D ab Zeile 4 abwärts (ab dort beginnen real die Eintragungen in meiner echten Tabelle) auf die z.B. ausgewählte 115 und anschließend aktiviert man z.B. über eine Schaltfläche das Makro, was nun für Spalte D unter Berücksichtigung der anderen Filtereinstellungen die richtige Anzeige bzw. Auswahl trifft, also dann auch die mit 115/116 und 116 anzeigt.
Das Makro was ich zuletzt gezeigt hatte zeige ich deshalb nun noch mal.
Es berücksichtigt bereits die anderen Filtereinstellungen (was ich ganz toll finde) jetzt müsste nur noch Deine Formel hinein integriert werden und es ist kein Spezialfilter notwendig!!!
Sub FilterSchnell()
Dim SpNr As Integer
Dim Such As String
AutoFilterMode = False
SpNr = ActiveCell.Column
Such = ActiveCell.Value
Selection.AutoFilter Field:=SpNr, Criteria1:=Such, Operator:=xlAnd
End Sub
Ich hoffe Du hast dafür Verständnis!!! Vielen Dank für weitere Unterstützung!!!

Anzeige
AW: Fast perfekt !!!!
18.10.2010 15:47:38
Isolde
Hallo,
Die Sortierung von den vorhergehenden Spalten wird jetzt mit berücksichtigt.
Geht es nicht nicht auch ohne "ComboBox" und Spezialfilter, sondern über ein normales Makro wie ich vorhin angefragt hatte?
Bitte hierzu noch mal meine letzte Frage durchlesen.
Meine Tabelle ist in Wirklichkeit ca. 20 Spalten lang, das heißt es muss natürlich alles mit sortiert werden.
Ich kenne mich mit dem Spezialfilter nicht so gut aus.
Z.B. frage ich mich auch wie das Eingabefeld des Spezialfilters verschieben kann (Position ändern).
Anzeige
keine Idee mehr ...
18.10.2010 15:57:14
Tino
Hallo,
da ist kein Spezialfilter enthalten, nur die Combo für die Auswahl die wird beim öffnen der Datei gefüllt.
Ohne Combo müsstest Du wieder in den Filter gehen und die Daten von Hand eingeben.
Sonst habe ich auch keine Idee, wie man es sonst noch lösen könnte.
Gruß Tino
Ergänzung
18.10.2010 16:13:53
Isolde
Hallo Timo,
mir ist gerade noch eine Kleinigkeit aufgefallen.
Gib mal spasseshalber in Spalte D als Suchnummer 205 ein. Dieser kleine Fehler ist mir erst nicht aufgefallen.
Er findet sie nicht. Excel müsste nun 205/206 anzeigen, tut es aber nicht weil es in diesem Fall die 205/206 nicht einzeln, sondern nur mit Schrägstrich gibt.
Kannst du das in der Combo-Box bitte noch korrigieren?
Wenn es dann korrigiert ist, ist zumindet die von Dir programmierete Suchfunktion komplett richtig.
Ich hoffe Du hast nichts dagegen, wenn ich dann die von Dir richtige Programm noch einmal in das Forum (neuer Beitrag) stelle.
Vielleicht kann auf dieser Basis dann jemand so ein Makro schreiben bzw. vielleicht haben andere da noch weitere Ideen.

Bist Du mit diesem Vorschlag einverstanden?
LG Isolde
Anzeige
Frage noch offen. o.w.T.
18.10.2010 16:15:50
Isolde

  • vielleicht so...
    18.10.2010 16:44:49
    Tino
    Hallo,
    https://www.herber.de/bbs/user/71961.xls
    "Ich hoffe Du hast nichts dagegen, wenn ich dann die von Dir richtige Programm noch einmal in das Forum (neuer Beitrag) stelle."
    Nein, warum sollte ich was degegen haben.
    Gruß Tino

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige