Liebe VBA-Kenner
Ich habe da so eine Aufgabenstellung die ich mit meinen VBA Kenntnissen nicht lösen kann.
Vielleicht hat jemand die entscheidende Idee.
Problem:
Benötigt wird eine Suchbegriff_Autofill_Function mit der man die Zeicheneingabe in einer InputBox,
Userform usw. aktiv kontrollieren kann. Hinweis: Ich weiss noch nicht welches Eingabeformat ich nehme.
Jedes eingegebene Zeichen wird an eine Suchbegriff_Autofill_Function weitergegeben die diese verarbeitet.
Die Verarbeitung besteht darin, dass die eingegebenen Zeichen mit einer Stringtabelle "Dim strTabelle(0 To 9999)"
abgeglichen werden um bei Treffern die restlichen Zeichen eines Suchbegriffes in der InputBox, bzw. Userform zu ergänzen.
Danach gibt Suchbegriff_Autofill_Function die Kontrolle wieder zur weiteren Eingabe an den Aufrufer zurück.
Beendet wird die Eingabe mit {RETURN}, bzw. mit einem Click-Ereignis.
Skizze:
Ausgabe einer InputBox nach folgendem Muster,
Kategorie = Application.InputBox("Bitte Kategorie eingeben: z.B." & Chr(13) _
& " <Kategorie>," & Chr(13) _
& " <Kategorie:Unterkategorie-1>" & Chr(13) _
& " <Kategorie:Unterkategorie-1:>" & Chr(13) _
& " <Kategorie:Unterkategorie-1:Unterkategorie-2>", _
"Suche nach", Type:=3)
Ablauf, Vorstellung wie es ablaufen soll (siehe Beispiele):
Eingabe eines Suchbegriffes bis die InputBox, bzw. die Userform beendet wird:
Daten der Stringtabelle "strTabelle" (Beispiele):
"Gutschrift"
"Gutschrift:Schecksperre"
"Gutschrift:Steuer"
"Gutschrift:Tagesgeld"
"Gutschrift:Tagesgeld:Zinsen"
Beispielhafte Aktion:
Eingabe eines "G",
Spaltengerechtes Suchen der Eingabe in der Stringtabelle,
Wenn gefunden wird der komplette String "Gutschrift" in der Eingabe InputBox, bzw. in der Userform vervollständigt.
Fährt man mit einem "{Right}" fort wird der String "Gutschrift" um ":" und die erste Unterkategorie ergänzt.
In der Eingabe steht dann "Gutschrift:Schecksperre". Der Cursor steht dann auf dem ersten Buchstaben der Unterkategorie "S".
Fährt man jetzt mit der Eingabe von "St" fort, wird die Eingabe in "Gutschrift:Steuer" geändert.
Solange das Eingabeformat noch nicht mit {RETURN}, bzw. mit einem Click-Ereignis beendet ist kann das Eingabeformat vollkommen frei editiert werden.
Erlaubt sind alle Zeichen A-Za-z0-9,[,],_,/, " " sowie die Steuertasten "{Right}", "{Left}", "{Delete}", "{Shift}.
Frage:
Mit welchem Sprachmittel von VBA kann man einen solchen Datenaustausch realisieren? Geht das überhaupt?
Ich wäre für jeden Vorschlag dankbar.
|