Live-Forum - Die aktuellen Beiträge
Datum
Titel
15.07.2024 16:00:57
15.07.2024 15:41:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Automatische Treffersuche in Matrix
Mirko
Liebe VBA-Experten!
Ich wende mich mit folgendem Problem an euch. Ich habe eine Datenbank, aus der ich entsprechend der Produktgattung (Aktienfonds, Rentenfonds etc) die entsprechenden Einzelfonds einblenden lasse. Nun würde ich gerne ein freies Feld einbauen, wo man einen bestimmten Fonds eintippen kann und die dazughörenden Werte würden in einer einzigen Zeile ausgegeben werden. Auf diese Weise könnte die Übersichtlichkeit auf dem Tabellenblatt stark vereinfachen, da nun keine 50-60 Zeilen mehr zu sehen wären, sondern nur das gewünschte Fonds.
Wie könnte man dies nun machen? Ich kann entsprechend des Layouts nur einen Textfeld setzen. Da möchte ich den Fondsnamen eintippen und anschließend durch Enter die Suche (SVerweis) starten. Ich habe ein Bsp-file eingefügt um das ganze besser verdeutlichen zu können.

Die Datei https://www.herber.de/bbs/user/73436.xls wurde aus Datenschutzgründen gelöscht


Würde mich sehr freuen, wenn mir jemand helfen könnte!!
Vielen vielen Dank im Voraus!
Mirko
AW: Automatische Treffersuche in Matrix
07.02.2011 22:30:56
Josef

Hallo Mirko,
wozu ein Textfeld?
Tabelle1

 ABCDEFGHIJ
3          
4          
5 Fonds 2       
6      Datenbank   
7      FondsnameWKN… 
8      Fonds 1222aaa 
9 FondsnameWKNetc.  Fonds 2111ccc 
10 Fonds 2111ccc  Fonds 3333bbb 
11          
12          
13          

Formeln der Tabelle
ZelleFormel
B10=WENN(B5="";"";B5)
C10=WENN(ISTFEHLER(VERGLEICH($B$10;$G$8:$G$29;0)); "";INDEX(H$8:H$29;VERGLEICH($B$10;$G$8:$G$29;0)))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Gruß Sepp

Anzeige
AW: Automatische Treffersuche in Matrix
07.02.2011 22:58:39
Mirko
Hallo Sepp,
vielen Dank für Deine schnelle Hilfe!! So könnte das auch funktionieren. Ich schau ob ich die momentane Abfragemaske layouttechnisch anpassen kann. Das Problem ist, dass ich nicht gerade dort, wo ich eine Zelle in der entsprechenden Länge brauche, eines vorhanden wäre (da diese kürzer,breiter, länger etc.) sein muss aufgrund der anderen Gestaltungen. Aus diesem Grund würde ich gerne ein Textfeld einsetzen, welches ich dann mit einer Zelle verbinden würde. Wird dann in den Textfeld etwas eingegeben, so erscheint dies im Hintergrund in der entprechenden Zelle und durchläuft dann die von Dir angegebenen Formeln. Ist sowas überhaupt möglich?
Vielen Dank für Deine Unterstützung!
Mirko
Anzeige
AW: Automatische Treffersuche in Matrix
07.02.2011 23:06:37
Josef

Hallo Mirko,
nicht mit einem Textfeld, weil dieses nicht auf z. B. Enter reagiert, wenn dann mit einer TextBox (ActiveX), bei dem bist du allerdings gestalterisch begrenzt.

Gruß Sepp

AW: Automatische Treffersuche in Matrix
07.02.2011 23:14:36
Mirko
Jetzt machst Du mich aber neugierig. Ist so eine Umsetzung mit einem TextBox aufwendig? Gestalterisch müsste ich den Textbox nur in die entsprechende Länge ziehen müssen, mehr Wünsche hätte ich da gar nicht. Nur falls Du 10 Minuten Zeit hättest -könntest Du mir ev so einen Beispiel in das angehängte Excel-doc machen, damit ich sehe wie das geht? Ich dachte bislang, es gäbe nur Textfelder :)
Vielen Dank für Deine Unterstützung. Dein Input ist tausendmal besser, als irgendein Theoriebuch! :)
Mirko
Anzeige
AW: Automatische Treffersuche in Matrix
07.02.2011 23:25:57
Josef

Hallo Mirko,
anbei ein Beispiel mit einer Textbox.
Mit [Enter] wird der Code, er befindet sich im Modul der Tabelle, ausgeführt.
https://www.herber.de/bbs/user/73437.xls

Gruß Sepp

AW: Automatische Treffersuche in Matrix
07.02.2011 23:45:15
Mirko
Vielen Dank für das Beispiel Sepp!!! Kurz noch einige Fragen zu dem Code. Wie verbinde ich die Textbox mit dem Makro? Hier gibt es kein „Makro zuweisen“ wie sonst immer. Reicht es, wenn an den entsprechenden Stellen im Makro „Textbox1“ steht?
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim vntRet As Variant If KeyCode = 13 Then (wofür seht 13?) vntRet = Application.Match(TextBox1, Range("G:G"), 0) (reicht es nur G:G anzugeben? Kann _ ich auch G1: M29 angeben? If IsNumeric(vntRet) Then Range("B10") = Application.Proper(TextBox1.Text) Range("C10") = Cells(vntRet, 8).Value (was bedeutet die 8 und die 9?) Range("D10") = Cells(vntRet, 9).Value Else Range("B10") = "No Match!" Range("C10:D10") = "" End If End If End Sub
Vielen Dank!! Ab jetzt will ich nur noch solche nutzen!!:)
Anzeige
AW: Automatische Treffersuche in Matrix
08.02.2011 00:05:02
Josef

Hallo Mirko,
ActiveX-Steuerelementen weißt man kein Makro zu, man nutzt die Events die diese zur Verfügung stellen.
Wenn du im VBE den Cursor in den Code stellst, kannst du in der Combobox rechts oben die verfügbaren Ereignisse auswählen.

If KeyCode = 13 Then  (wofür seht 13?) 13 ist der KeyCode für die Enter-Taste!
vntRet = Application.Match(TextBox1, Range("G:G"), 0)  (reicht es nur G:G anzugeben? Kann ich  _
auch G1: M29 angeben?
Mit .Match prüft man eine Spalte, nicht mehrere. G ist die Spalte in der die Fonds stehen und  _
in dieser wird gesucht, wenn du nicht die ganze Spalte angeben willst, musst du aufpassen, weil der Index dann nicht mehr direkt auf die Zeilennummer verweist!
Range("C10") = Cells(vntRet, 8).Value (was bedeutet die 8 und die 9?)
Das sind die Spalten aus denen die Werte gezogen werden!


Gruß Sepp

Anzeige
AW: Automatische Treffersuche in Matrix
08.02.2011 09:48:50
Mirko
Hallo Sepp,
vielen Dank für die Informationen. Ich werde mir auf alle Fälle die Eigenschaften der Textboxen studieren. Scheinen eine sehr interessante Option zu sein, sofern ich layouttechnisch keine Zelle verwenden könnte.
Besteht auch die Möglichkeit, dass ich bei der Suche nach einem Fondsnamen auch Treffer anzeige, die nicht exakt zu 100% mit dem Fondsnamen übereinstimmen? Wenn jemand z.B. "Fonds1" eingibt, die genaue Bezeichnung laut Datenbank aber "Alpha Fonds 1" oder "Alpha Fonds 1 a" heißt, könnte ich diesen als Ergebnis anziegen lassen? Könnte ich in diesem Fall meine Ausgabe auf mehrere Zeilen (2) erweitern?
Könntest Du mir vielleicht noch zeigen wie dies über Option 1 (Excel-Formel) und Option 2 (Textbox) funktionieren könnte?
Ich kann Dir gar nich genug Danken!!!! Du bist eine mega Bereicherung für uns alle hier im Forum!!!
Mirko
Anzeige
AW: Automatische Treffersuche in Matrix
08.02.2011 12:15:18
Josef

Hallo Mirko,
danke für die Blumen, aber da war doch was mit "Rosen vor die Sä.. ..."
anbei die Datei zum testen.
https://www.herber.de/bbs/user/73440.xls

Gruß Sepp

AW: Automatische Treffersuche in Matrix
08.02.2011 12:49:51
Mirko
Echt Super!!! Vielen vielen Dank! Jetzt muss ich nur noch die Formlen studieren und diese dann bei mir implementieren!
Beste Grüße
Mirko
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige