Das Clever-Excel-Forum.de - Treffen
... 14.-16. September 2018 im Allgäu ...

Suche mit mehrere Suchkriterien (Filtern für Fortgeschrittene)
#1
Hallo ihr lieben,

ich habe mal wieder ein kleines Problem. Einige haben sich ja schon mit meinem letzten Problem Siehe hier befasst. Aufbauend auf der Tabelle, die dabei entstanden ist, benötige ich heute eure Hilfe beim Finden von Einträgen aus dieser Liste. (Siehe Anhang)


.xls   Beispiel1.xls (Größe: 96,5 KB / Downloads: 9)

Mein Problem ist folgendes:

Auf dem Blatt "Tabelle1" habe ich, beginnend ab "K11", eine Suchmaske angelegt. (Orange Felder - K13 bis O13) Dort soll anhand von Dropdown Listen der Inhalt der Spalten von dem Blatt "Schrauben gesamt" aufgelistet werden. Das ganze aber in Abhängigkeit von den jeweils anderen Suchfeldern. Unter "Suchergebnis" ab K19 sollen dann alle Teile aufgelistet werden die den bisherigen Suchkriterien entsprechen.

Ein Beispiel:
Wähle ich im Suchfeld nur im Feld "Detail 1" den Wert "M2" aus will ich bei den Ergebnissen alle Schrauben mit M2 angezeigt bekommen. Ganz gleich welche Länge oder welcher Typ. Erst wenn ich das ganze weiter eingrenze will ich das ganze weiter gefiltert bekommen. Im Prinzip soll dies einen manuellen Filter, wie in Excel integriert hat, ersetzten bzw komfortabler machen.

Kann mir da jemand bei helfen? Hab im Internet was über Aggregat Formeln gelesen. Leider habe ich bei solch komplexen Dingen aber nicht die nötige Erfahrung. Freue mich über jegliche Hilfestellung.

Vielen Dank!
to top
#2
Hallo,

eine Lösung per Vba und dem Spezialfilter:

folgenden Code in das Codefenster der Tabelle "Tabelle1"

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("K13:O13")) Is Nothing Then Call suche
End Sub


und folgenden in ein Modul:


Code:
Sub suche()
 Dim lngZ As Long
 Range("K19").CurrentRegion.Offset(1, 0).Clear
 If Application.CountA(Range("K13:O13")) > 0 Then
   With Sheets("Schrauben gesamt")
     lngZ = .Cells(.Rows.Count, 2).End(xlUp).Row
       .Range("B1:K" & lngZ).AdvancedFilter 2, Range( _
         "K12:O13"), Range("K18:T18"), False
   End With
 End If
End Sub


Dieser Code kann auch per Schaltfläche oder manuell angestoßen werden.

Ansonsten wird nach jeder Eingabe im Bereich K13:O13 sofort gefiltert.
Leider nimmt der Spezialfilter alle Formate der Quelltabelle mit.

WICHTIG!!!
Die Überschriften im Bereich Suchmaske müssen exakt so geschrieben sein, wie in der Quelltabelle.
Wenn Fehler auftauchen erst die Überschriften prüfen. Am besten aus der Quelltabelle rüber kopieren.

Die Überschriften im Ergebnisbereich bitte löschen. Die werden per Code neu angelegt.

Die Suche zeigt auch Ergebnisse, wenn Angaben in Teilen gefunden werden.
Bei Eingabe von "sc" wird "Screw" gefunden
Man kann auch mit Wildcards arbeiten: Bei Eingabe von *c" wird auch "Screw" gefunden
Gruß Atilla
to top
#3
Hallo Atilla,

Du bist mein Held! Das funktioniert hervorragend. Ich weder das jetzt in meine Tabelle einbauen. Falls noch offene Fragen sind melde ich mich noch mal. Ich denke aber dass es für meinen Zweck mehr wie ausreichend ist.

Dankeschön!

Viele Grüße,
Reismann
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste