Textfelder mit Suchfunktion in Excel 2007

Hallo,

ich habe habe folgendes Problem und hoffe das mir hier einer helfen kann.
Ich habe unter Excel 2007 eine Tabelle erstellt in dem ich meine ganze DVD Sammlung aufgelistet habe. Die Liste besteht (logischer Weise) aus mehreren Spalten. Titel, Genre, Länge usw. Nun habe ich mir Makros erstellt die je nach Wunsch diese Spalten sortieren. Soweit so gut.
Jetzt mein Problem.
Ich möchte mir in den oberen (fixierten) Zeilen ein bzw. mehrere „AKTIV X-STEUERELEMENT TEXTFELD“ einfügen was ich auch schon getan habe. Ziel ist, das wenn ich ein Titel suche den in diesem Textfeld eingebe und mir dieser unten entweder separat angezeigt wird oder in der Liste zu dem Titel „gescrollt“ wird. Das selbe möchte ich dann mit der Spalte Genre machen. Desweitern habe ich DREI Spalten in dem die Darsteller aufgelistet sind. Hier möchte ich auch ein TEXTFELD erstellen in dem ich Titel nach Darstellern suchen kann allerdings dann auch (logischerweise in allen drei Spalten gesucht wird.
Ich wer sehr dankbar wenn sich jemand die Mühe machen würde mir da zu helfen da ich in dem Gebiet absolut keine Ahnung habe. Auf Wunsch kann ich auch gerne diese Liste zuschicken. Ich danke euch im vorraus

Hallo,

ich muss mal ganz dumm nachfragen: warum machst du das mit aktiv-x-steuerelement? Wenn ich Dein Anliegen richtig verstehe, geht es doch nur um Sortierung und Filterung. Das müsste ganz einfach auch mit dem Auto-Filter zu bewerkstelligen sein. Hast Du es damit schon versucht?

LG
mamakruemelchen

hallo,
wenn ich den Filter reinnehme bekomme ich ein Dropdownliste in der ich ebenfalls erst auswählen muss ob alles oder einzellne Einträge. Dann müsste ich die ganze Liste ebenfalls runterscrollen um den Eintrag zu finden…könnte ich also dann auch mit meiner kompletten Liste ohne Filter machen. Ziel ist den Gesuchten Titel bzw die Titel die mit den ersten, und dann zweiten usw Buchstaben anfangen sofort herrauszufiltern…ist ein bisschen blöd zu erklären aber hoffe du verstehst was ich meine

Hallo,

beim Auto-Filter kannst du auch einen Suchbegriff eingeben und musst nicht die Auswahlliste scrollen. Müsste auch bei Excel 2007 sein, denn ich habe zuhause Excel aus dem Jahre 2004 (Version weiss ich jetzt grad nicht) und da geht das auch.

Ich kann Dir im Moment nur den genauen Weg bei Excel 2010 beschreiben, weil ich das am Arbeitsplatz habe. Heute abend zuhause könnte ich dann step-by-step das Excel der früheren Version durchgehen. Sag mir Bescheid, wenn es bis dahin warten kann, ich melde mich dann gern heute abend nochmal.

Aber wie gesagt - ich arbeite seit Jahren mit Excel der früheren und aktuellen Versionen und beim Autofilter konnte man bislang immer auch einen Suchbegriff eingeben und musste nicht aus der Vorschlags-Liste auswählen.

LG mamakruemelchen

hier auch nochmal der Link für dich Reinhard

http://www.file-upload.net/download-3912952/FILMARCH…

Hallo,

also ich hab mir die Excel-Tabelle mal ge-uploaded. Ich kann beim Autofilter-Setzen durchaus einen Suchtext-teil eingeben, ohne scrollen zu müssen. Man kann es sicherlich auch komplizierter und programmierter mit einem steuer-element oder macro und dergleichen gestalten. Ich bin „leider“ eher ein Freund einfacher Lösungen und könnte dabei dann leider nicht so weiterhelfen.

LG
mamakruemelchen

hier auch nochmal der Link für dich Reinhard

http://www.file-upload.net/download-3912952/FILMARCH…

Hallo,
sorry ich arbeite noch mit Excel 2003.

Gruß

Hallo Marco!

Tut mir leid, aber da kann ich auch nicht weiterhelfen. Hoffe jemand anderes kann Dir helfen.

Viel Glück und liebe Grüße…Sylvi

Hallo Marco,
bei einem Active-X-Steuerelement kann ich dir leider nicht helfen, damit habe ich keine Erfahrung.
Das was du beschreibst, kann man aber mit der Datenbankfunktion „Spezialfilter“ von Excel lösen.
Vorgehensweise: Excel-Tabelle mit Spezialfilter selektieren:

Richten Sie vor der Excel-Tabelle den Kriterienbereich ein, der in der dritten Zeile die Feldnamen und in den darunter liegenden Zeilen die Suchkriterien enthält.
Über die Multifunktionsleiste „Daten“, Gruppe „Sortieren und Filtern“ auf „Erweitert“ klicken.
in diesem Dialogfeld:
(O) Liste an gleicher Stelle filtern aktivieren und beim Listenbereich den Tabellen- / Datenbereich (einschließlich der Überschriften) einfügen und beim Kriterienbereich den „Suchbereich“, d.h. die Feldnamen einschließlich der Zeilen darunter mit den Suchkriterien.

Falls du nicht weiterkommst, melde dich einfach nochmal bei mir, dann kannst du mir mal deine Excel-Tabelle schicken.Viel Erfolg, Heike

Hallo Marco,

sorry für die späte Antwort. Ging leider nicht früher.
Hast Du Dir mal die Funktion Autofilter aus Daten -> Filter angesehen?

Alternativ könnte man evtl. mit einer Pivot-Tabelle etwas anfangen. Da bin ich mir aber nicht sicher.

Ich mach mir noch ein paar Gedanken, was mit den unterschiedlichen Funktionen noch möglich ist.

Grüße
Andreas

Hallo Andreas,

erstmal danke für deine Antwort. Allerdings sind deine Vorschläge nicht das richtige bzw das was ich mir Vorstelle.Ich denke aber das das nur mit einem Code im Visual Basic zu realisieren ist. Nur habe ich davon keine Ahnung. Deshalb wäre ich für jeden Hinweis oder Vorschlag sehr dankbar da ich mittlerweile verzweifel und überhaupt nicht weiter weiß.Würde mich freuen wenn du trotzdem dran bleibst. Dank dir und viele Grüße

Hallo Marco,

ich hab mir deine Excel-Liste mal angesehen. Deine ganzen Probleme könnten daher entstehen, weil du zwischen den Spalten jeweils >>Leerspalten

Hallo Heike,

dank dir erstmal für deine Antwort. Ich habe als erstes erst einmal die Leerspalten rausgenommen allerdings bin ich bis jetzt auch nicht viel schlauer. Ich habe auch versucht ein Formularsteuerelement einzubauen und dieses mit Hilfe mehrerer Makros zu „füttern“. Heißt das ich makros aufnehme, mit dem ich mir meine gewünschten Zeilen herrausfiltern kann. Ich kann zwar Makros aufnehemn allerdings wenn ich dann auf meinem Steuerelement gehe und auf Makros zuweisen klicke passiert überhaupt nichts. Kannst du mir da nen Tip geben?

Dank dir vielmals

Hallo Marko,

ich gehe davon aus, dass du über die
Registerlasche „Entwicklertools“ ein Formularsteuerelement „Schaltfläche“ - ganz links oben das erste -eingefügt hast?!?
Und wenn du dann das Makro - das in der aktiven Arbeitsmappe „FILMARCHIV…“ mit gespeichert sein sollte, und nicht in der PERSONL.XLS, denn dann steht das Makro nur auf diesem/deinem PC zur Verfügung - hinterlegt hast, passiert nix?
Hast zu eventuell unterhalb der Multifunktionsleiste eine Warnmeldung? Prüf doch bitte mal in „Entwicklertools“ - Makrosicherheit, ob da „alle Makros aktivieren“ eingeschalten ist.
Eventuell ist ein Excel-Neustart notwendig.
Viele Grüße
Heike

Hallo Heike,

alles was du beschrieben hast ist auch so eingestellt und funktioniert auch. Das Problem was ich aber habe ist das ich in meinem Filmarchiv 25 verschiedene Genres habe und somit 25 Schaltflächen haben müsste. Das würde fuktionieren ist aber etwas „Platzraubend“. Dazu kommt das ich dann für jeden „Darsteller“ ja auch noch jeweils so eine Schaltfläche haben müsste.:open_mouth:)
Aus diesem Grunde habe ich mir gedacht das ich mir ein Formularsteuerelement - Kombinationsfeld einbaue was sich in einer UserForm befindet. Diese Userform wird durch eine Befehlsschaltfläche aufgerufen. Nun habe ich es schon geschafft das ich in dieses Kombinationsfeld mit meinen ganzen Genres füttere. Nur fehlt mir jetzt nur noch der Befehl das ich wenn ich in der Userform den eingebauten Butten betätige mir in meiner Liste alle mit dem ausgewähltem Genre anzeigt.

Ich stelle nochmal einen link rein wo du dir es nochmal genauer anschauen kannst.

http://www.file-upload.net/download-3941480/FILMARCH…

vielen Dank für deine Bemühungen.

Gruß Marco

Hallo Marko,

na, das sieht doch schon ganz gut aus.
Leider hast du, wie schon gesagt, deine Makros alle in der Datei „PERSONL.XLS“ abgespeichert und diese Personl.xls-datei befindet sich auf >>deinem Computer

Hallo Heike,

du hast recht…daran habe ich gar nicht gedacht das du die Makros nicht ausführen kannst. Wenn es dir keine Umstände macht und du mir den Gefallen tun würdest,würde ich mir die Arbeit machen und die Makros
noch mal umschreiben.
Weiß aber nicht ob ich das heute noch schaffe.
Dank dir schon mal im Vorraus. Du bist meine Rettung:open_mouth:)

Stelle sobald ich fertig bin den link hier rein

Hallo Marco,

der Code unter dem CommandButton2 im Userform2 muss so lauten:

Private Sub CommandButton1_Click()
ActiveWindow.SmallScroll Down:=24
Range(„D3“).Select
ActiveSheet.Range("$A$6:blush:N$407").AutoFilter
Field:=4, Criteria1:=ComboBox1.Value
Range(„A6“).Select
End Sub

Hallo Heike,

Wahnsinn…TAUSEND DANK…funktioniert super.

Nur eine Frage hab ich noch: wie bekomme ich in meine Userform Darsteller alle Darsteller aus allen 3 Spalten und was muss ich dann beim Command Button in der Userform eingeben??? Wenn du mir diese Frage beantworten könntest wäre ich dir Dankbar ohne Ende…

liebe Grüße Marco

Hallo Marco,

kopier dir den Code in dein UserForm1:

Private Sub CommandButton2_Click()
ActiveWindow.LargeScroll ToRight:=-1
Range(„F6:H6“).Select
Selection.Copy
Application.Goto Reference:=„R1C16“
ActiveSheet.Paste
Range(„P2“).Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ComboBox1.Value
Range(„Q3“).Select
ActiveCell.FormulaR1C1 = ComboBox1.Value
Range(„R4“).Select
ActiveCell.FormulaR1C1 = ComboBox1.Value
Range(„R5“).Select
Range(„A6:N500“).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range(„P1:R4“), Unique:=False
Range(„A6“).Select
End Sub

Private Sub UserForm_Activate()
Dim objDictionary As Object
Dim varBereich As Variant
Dim arrDaten As Variant
Dim loZaehler As Long
Set objDictionary = CreateObject(„Scripting.Dictionary“)
varBereich = Range(„F7“, Range(„F7“).End(xlDown))
For loZaehler = LBound(varBereich) To UBound(varBereich)
’ Eintrag wird nur übernommen wenn er im DictionaryObject noch nicht enthalten ist
objDictionary(varBereich(loZaehler, 1)) = 0
Next loZaehler
varBereich = Range(„G7“, Range(„G7“).End(xlDown))
For loZaehler = LBound(varBereich) To UBound(varBereich)
’ Eintrag wird nur übernommen wenn er im DictionaryObject noch nicht enthalten ist
objDictionary(varBereich(loZaehler, 1)) = 0
Next loZaehler
varBereich = Range(„H7“, Range(„H7“).End(xlDown))
For loZaehler = LBound(varBereich) To UBound(varBereich)
’ Eintrag wird nur übernommen wenn er im DictionaryObject noch nicht enthalten ist
objDictionary(varBereich(loZaehler, 1)) = 0
Next loZaehler

arrDaten = objDictionary.keys
QuickSort arrDaten
ComboBox1.List = arrDaten
Set objDictionary = Nothing

End Sub

Sub QuickSort(ByRef VA_Array, Optional V_Low1, Optional V_High1)
http://www.herber.de/forum/archiv/108to112/t109556.htm
On Error Resume Next
Dim V_Low2 As Long, V_High2 As Long
Dim V_Val1, V_Val2 As Variant
If IsMissing(V_Low1) Then
V_Low1 = LBound(VA_Array, 1)
End If
If IsMissing(V_High1) Then
V_High1 = UBound(VA_Array, 1)
End If
V_Low2 = V_Low1
V_High2 = V_High1
V_Val1 = VA_Array((V_Low1 + V_High1) / 2)
While (V_Low2 V_Val1 And _
V_High2 > V_Low1)
V_High2 = V_High2 - 1
Wend
If (V_Low2 V_Low1) Then Call _
QuickSort(VA_Array, V_Low1, V_High2)
If (V_Low2