Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1704to1708
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

Suchfunktion über Textboxen

Suchfunktion über Textboxen
13.08.2019 16:35:15
Tim
Hallo zusammen,
ich habe hier eine Vorlage einer Userform, in der die entweder über Textbox1 (Spalte A), Textbox2 (Spalte B) oder Textbox4 (Spalte D) in unterschiedlichen Spalten nach einem Wert gesucht wird.
Bisher wurden nur nach Zahlenwerten gesucht, jetzt könnten auch Buchstaben als Folge vorkommen.
Ich habe das versucht mit Application Match zu suchen,
varTMP = Application.Match(TextBox4.Text).Range("D:D") führt nicht zu Erfolg.
Wird eine Textbox ( 1, 2 oder 4) ausgefüllt, so sollen nach Eingabe in die entsprechende Textboxen die die anderen Elemente aus der Tabelle ausgelesen. Es sollte ohne Suchbutton funktionieren.
Fehlermeldung 13 und 1004 wird angezeigt.
Application Match wurde mir von einem Kollegen empfohlen, aber ich fürchte er hat mich da auf den Holzweg geschickt.
Wie könnte ich das besser lösen?
https://www.herber.de/bbs/user/131412.xlsm
Danke

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchfunktion über Textboxen
13.08.2019 17:12:39
Daniel
HI
naja, du musst die Funktion auch richtig parametrisieren:
varTMP = Application.Match(TextBox4.Text, .Range("D:D"), 0)
die Funktion liefert dir dann die Positionsnummer innerhalb der durchsuchten Spalte.
ich würde hier aber mit .FIND arbeiten:
Set Zelle = Range("D:D").Find(what:=Textbox4.Text, lookat:=xlwhole, lookin:=xlvalues)
die Fundstelle hast du dann als Range-Objekt.
die Prüfung, ob die Suche erfolgreich war, würde ich so machen:
If Not Zelle Is Nothing then
Application.Match würde ich nur einsezten wenn
a) die Werte in der durchsuchten Spalte aufsteigend sortiert sind, weil man mit Application.Match dann die wesentlich schnellere "binäre Suche" einsetzen kann (das können in VBA und Excel nur Vergleich/Match und SVerweis/VLookUP)
b) nach Datumswerten oder Dezimalzahlen gesucht werden muss, weil mit Application.Match die Suche Format-Unabhängig nach dem tatsächlichen Wert erfolgt, während .FIND auch de Zellformatierung berücksitigt und das ganze im amerikanischen Format angegeben werden muss, was die Suche mit .FIND dann tricky macht.
bei suche nach Texten ist .FIND aber die bessere Methode.
Gruß Daniel
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige