Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Vorschläge auf Basis von LIKE

Forumthread: VBA Vorschläge auf Basis von LIKE

VBA Vorschläge auf Basis von LIKE
15.06.2024 09:33:30
Joschi Witchcraft
Hallo Forum.

Ich habe eine Idee, doch mir fehlt die Lösung.

Immer wieder brauche ich einen Begriff, den ich schon einmal verwendet habe. Auch außerhalb der aktuellen. Mappe, welche jahresbezogen ist.

In einem Tabellenblatt füge ich eine neue Zeile ein - nicht am Ende sondern irgendwo mitten drin. In der Spalte 3 sollte jetzt ein Begriff eingefügt werden. Es ist manchmal kein einfacher Begriff. Deshalb würde ich nun gerne eine Liste mittels einer Maske nach passenden Vorschlägen suchen. Gefällt mir einer der Vorschläge, dann soll der Begriff (ggf. manuell über die Zwischenablage) in die entsprechende Zelle eingefügt werden.

Problem 1: wie kann ich die Suche starten, ohne dazu eine Schaltfläche zu benötigen.

Problem 2: ich brauche noch eine Maske für das Suchen.

Problem 3: wenn meine (like-)Maske mehr als einen Treffer ergibt, brauche ich eine Auswahl der möglichen Vorschläge.

Die Vorschläge würde ich gerne in einer Textfile mit feststehendem Namen im aktuellen Verzeichnis bereitstellen. Den Inhalt dieser File kann ich durch Auswertung vorhandener Files bei Bedarf erstellen/aktualisieren.

Ich erwarte keine fertige Lösung, sondern nur Lösungsvorschläge zu den von mir genannten Problem-Punkten.

Wer kann mir helfen?

Gruß Joschi
Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Vorschläge auf Basis von LIKE
15.06.2024 11:07:42
Fennek
Hallo,

mit einem Short-Cut, z.B. "strg-f" kann eine User-Form gröffnet werden, die Daten müssen dort in hinterlegt sein und eine "like"-Suche ermöglichen.

Auch jemand mit Erfahrung kann dafür leicht eine Stunde benötigen.


mfg
AW: VBA Vorschläge auf Basis von LIKE
15.06.2024 15:47:33
Joschi Witchcraft
Hallo Fennek.

Ich möchte nicht unhöflich sein. Aber dass es "irgendwie" schon lösbar ist, war mir klar. Und pauschale Antworten helfen mir mit meinem Basiswissen nicht weiter.

Gruß Joschi
Anzeige
AW: VBA Vorschläge auf Basis von LIKE
15.06.2024 11:24:27
Alwin Weisangler
Hallo Joschi,

im Prinzip mit überschaubarem Aufwand möglich. Allerdings ist dies besser im Ribbon aufgehoben, als in einem Userform.

Man kann in einer Editbox den Suchstring eingeben und aus einem Dictionary oder Array, welches aus den vorhandenen Zellinhalten des Tabellenblattes/Tabellenblätter vorher gefüllt wurde das Trefferangebot als Combobox auswählbar oder den ersten Treffer in einer Editbox zurückgeben.

Passt der/die Treffer kann man in die Combo- / Editbox klicken und mit Strg./C kopieren und dann in die gewünschte Zelle mit Strg./V einfügen.

Ist der Weg via Ribbon dir noch zu steinig, dann kann man natürlich es mit einem Userform machen und setzt dieses auf SchowModal = False.

Möchtest du programmiertechnische Hilfe für eine Lösung, dann lade eine passende (ergebnistaugliche) Datei hoch.

Gruß Uwe
Anzeige
AW: VBA Vorschläge auf Basis von LIKE
15.06.2024 19:33:50
Piet
Hallo

schau dir bitte mal diesen Thread an, da sind von mir zweimal Beispieldateien hochgeladen worden mit Suchlauf.
Sowohl innerhalb einer Arbeitsmappe, wie auch Suchen in externer Arbeitsmappe. Vielleicht hilft es dir weiter??
Suchfeld/ Datenabfrage in Arbeitsblatt integrieren - Stefan Karges 12.06.2024 13:17:53

mfg Piet
Anzeige
AW: VBA Vorschläge auf Basis von LIKE
16.06.2024 08:12:09
Oberschlumpf
Hi,

wenn ich dich mit "...Auch außerhalb der aktuellen. Mappe..." richtig verstehe, dann müsstest du ein AddIn programmieren und dieses dann in deinem Excel hinzufügen.

Wenn du AddIn nich willst oder nich kannst, dann müsstest du den Code, der eigtl nur 1x eben im AddIn stehen würde....in jede Datei einfügen, in der du die Suchfunktion benötigst.

Und als Idee, WAS genau im AddIn (oder in jeder Datei) stehen könnte, würd ich es so lösen:

- die von dir erwähnte Textdatei mit all den Begriffen, von denen du immer mal wieder den einen oder anderen benötigst

- 1 Userform enthält
...1 Textbox
...1 Listbox
...1 Button (der muss aber nich unbedingt)

- bei jedem Start des Userforms werden erst mal alle Begriffe aus der Textdatei in die Listbox eingelesen

- jetzt gibst du in die Textbox den Beginn oder einen Teil des Begriffs ein, den du suchst
...während der Eingabe in Textbox werden in der Listbox nur noch die Begriffe gelistet, die mit Suchtext (Textbox) beginnen oder enthalten sind

- Wenn der vollständige Begriff, den du suchst, in der Listbox zu sehen ist
...entweder 1x Klick oder Doppelklick auf den Begriff in der Listbox und dieser Begriff wird in deiner Tabelle in die Wunschzelle eingetragen

- Userform schließt sich automatisch

Hilfts?

ach ja...hmm...auch wenn du es - nich - sein wolltest, deine Antwort an Fennek kam zumindest für mich schon sehr unhöflich rüber.
Fennek hat dir, weil du ja auch gar keine Komplettlösung haben willst, einfach nur mal eine Idee genannt, WIE man deine Frage lösen könnte (mir fällt gerad auf, meine Idee ist ja die Gleiche :-); ich hab alles nur etwas ausführlicher beschrieben)
Egal, Fennek beschreibt dir etwas (durchaus kompetent), und dir hätte dazu ja vllt etwas einfallen können; womit ich jetzt - nich - deine Antwort an ihn meine

Auch deine Antwort an Uwe finde zumindest ich nich so prickelnd :-/
Auch er hat dir nur eine (andere) Idee beschrieben = Ribbon = die Deluxe-Lösung von Fenneks + meiner Idee :-)
Dazu schreibst du aber nur, dass du das ja auch mit Schaltfläche in Tabelle lösen könntest = ja, könntest du...aber!...siehe DEIN Problem 1 in deinen Startbeitrag!

Und was die Bsp-Datei betrifft, um die Uwe dich gebeten hatte:
(man man, auch hierzu deine Antwort = echt doof!)

Wir (ich auch immer wieder) bitten die Fragenden nich ohne Grund um Bsp-Dateien, denn...
a) wenn man SIEHT, was der Fragende versucht zu beschreiben, kann man sehr oft/sehr schnell viel besser helfen, als wenn man nur die Beschreibung hat
b) wenn es beim Fragenden doch schon eine Datei gibt, wieso sollen Antworter dann erneut eine Datei erstellen?? Die bestehende Datei kann doch vom Fragenden mit Bsp-Daten per Upload hier gezeigt werden.
c) deutsche Sprache = schwer = das zeigt sich oft auch in den Beschreibungen/Fragen von denen, die eine Lösung suchen = aufgrund von falscher Grammatik, usw kann es, und kam es schon, zu Missverständnissen kommen = ein Antworter programmiert was; der Frager reagiert mit: "hab ich ganz anders gemeint"...usw

Joshi, keine Ahnung, was mit dir los ist. Eigtl hab ich dich bisher viel freundlicher erlebt, aber deine heutigen Reaktionen = ???
Anzeige
AW: VBA Vorschläge auf Basis von LIKE
16.06.2024 09:37:44
Joschi Witchcraft
Hallo Oberschlumpf.

Deine Kritik kann ich nicht nachvollziehen. Mit meinem Basiswissen kann ich mit der Aussage von Fennek sehr wenig anfangen. Ich habe mir ein Beispiel mit einer Userform heruntergeladen. Aber mit "strg-f" kommt bei mir nur der "Suchen und Ersetzen"-Dialog. Basiswissen!!

Auch die Kritik an einer fehlenden Mustermappe finde ich nicht angebracht. Ich hatte 3 spezielle Fragen gestellt, welche mit dem Aufbau und dem Inhalt irgend einer Excel-Mappe nichts zu tun haben:

1. Wie kann ich einen Code ohne Schaltfläche starten? Uwe habe ich inzwischen geantwortet, warum die Lösung mit Ribbon für mich nicht in Frage kommt. Trotzdem hilft mir sein Beispiel weiter.
2. Wenn der Code ausgeführt wird, muss noch ein Suchbegriff eingegeben werden.
3. Aus einer Liste von Vorschlägen sind passende Einträge anzuzeigen, und der dann ausgewählte Begriff bereitzustellen,

Warum dafür eine Mustermappe erforderlich ist, ist mir nicht verständlich.

Und was soll ich mit einem AddIn? Die möglichen Begriffe stehen in einer externen Textfile zur Verfügung. Die einzulesen und nach "Treffern" zu durchsuchen benötigt nur einen kleinen Code. Die Basis für diesen Code habe ich von Uwe.

Eine offene Frage ist weiterhin, wie ich den Prozess zum Suchen passender Begriffe aus meiner Textfile starten kann. Und mir ist nur eine Lösung bekannt: Schaltfläche.

Wenn es für meine Fragen 2 und 3 keine andere Lösung gibt, dann wird es wohl - wie von Dir geschrieben - nur über eine Userform möglich sein. Mit meinem Basiswissen das nächste Problem. Eine Userform mit einem Eingabefeld werde ich im Internet vermutlich finden. Was aber, wenn es mehr mögliche Antworten gibt, als in der Userform vorgesehen sind? Mit einer Maske "*" würden alle Einträge aus meiner Textfile angezeigt werden.

Bin neugierig, ob ich bei Dir inzwischen auf der Liste der zu ignorierenden Fragesteller stehe.

Gruß Joschi

Ach ja: eines möchte ich noch nachtragen: die betroffene Anwendung wird nur innerhalb unserer Familie eingesetzt - von Personen, die überhaupt keine Ahnung von VBA haben.

Anzeige
1. Antwort
16.06.2024 10:29:38
Oberschlumpf
Hi,

Liste der zu ignorierenden Fragesteller = ich habe gar nicht so eine Liste

Für die Antwort auf all das, was du noooch geschrieben hast, brauch ich mehr Zeit...du vastehst?!

Ciao
Thorsten
AW: VBA Vorschläge auf Basis von LIKE
16.06.2024 17:05:36
Oberschlumpf
Hi,

Zitat "...Ich habe mir ein Beispiel mit einer Userform heruntergeladen..."
BItte: Zeig uns diese Datei bitte mal per Upload

...und...ich hab in Google diesen Suchtext eingegeben: vba userform mit tastenkombination öffnen
Gleich sofort der 1. Treffer führt zum Ziel!
https://www.herber.de/forum/archiv/1148to1152/1151995_UserForm_anzeigen_lassen_durch_Tastenkombination.html

Hab ich getestet, und wollt dir eigtl meine Testdatei hier mit anhängen. Aber nee, du willst ja keine fertigen Lösungen.
Ach so...im Treffer wird das Tastenkürzel STRG-a eingesetzt = kannst du problemlos auf STRG-f ändern.

Und in meiner letzten Antwort, Titel "1. Antwort", hatte ich zu viel versprochen.
Sorry, ich wollte dir eigtl auf alles antworten.
Aber je mehr ich deine Antwort las, um so geringer wurde meine Lust, dir weiterzuhelfen.

Du behauptest Dinge, die so überhaupt nicht stimmen!

Nur 1 Bsp:
"...Und was soll ich mit einem AddIn? Die möglichen Begriffe stehen in einer externen Textfile zur Verfügung. Die einzulesen und nach "Treffern" zu durchsuchen benötigt nur einen kleinen Code. Die Basis für diesen Code habe ich von Uwe..."

Ein Excel-AddIn hat so direkt rein gar nix mit Textdateien zu tun.

Der Grund, AddIn einzusetzen ist... :
- mit AddIn = den ganzen Code für Userform, Textdatei, Suche nach Begriffen musst du nur ein einziges mal schreiben...nämlich in die AddIn-Datei. Und wenn deine AddIn-Datei korrekt ins System eingebunden ist, dann steht dein AddIn FÜR JEDE ANDERE EXCEL-DATEI zur Verfügung!

- ohne AddIn = DU MUSST den ganzen Code für Userform, Textdatei, Suche nach Begriffen IN JEDE EXCELDATEI einfügen, in der du diese Suchfunktion nutzen willst

...ach so...das gilt übrigens auch für die Ribbon-Idee von Uwe!

Nun denn, wie erwähnt...je länger ich dich las = weniger Lust = sorry, ich bin hier raus, mag nich weiterhelfen.
Und nein, du bist noch immer nich auf meiner "Ignorier-Liste", die ich ja eh nich habe :-)
Wenn du mal wieder einen neuen Beitrag erstellst mit neuen Problemen, wer weiß, vllt werde ich dann dort auch wieder antworten.

Ciao + weiter viel Erfolg!
Thorsten
Anzeige
AW: VBA Vorschläge auf Basis von LIKE
16.06.2024 07:24:12
Joschi Witchcraft
Hallo Piet.

Nein! Das ist nicht das, was ich gesucht habe, und was mir weiterhelfen könnte.

Gruß Joschi
AW: VBA Vorschläge auf Basis von LIKE
15.06.2024 16:02:39
Joschi Witchcraft
Hallo Uwe.

In Deiner Antwort stecken einige Dinge, mit welchen ich mit meinem Basiswissen keinerlei Erfahrung habe. Combo- / Editbox? Habe ich schon einmal gehört, aber bisher noch nicht probiert.

Wenn ich den Begriff "Ribbon" richtig verstehe, geht es darum, das Menue oberhalb meiner Tabelle zu erweitern. Wenn das nur dazu dient, den Vorgang zu starten, dann kann ich das auch über eine Schaltfläche auf meinem Tabellenblatt erreichen; das beherrsche und verstehe ich.

Du bietest mir "programmiertechnische Hilfe für eine Lösung" an, und möchtest von mir eine "ergebnistaugliche" Datei. Was soll in der Datei stehen? Wenn das die zur Auswahl stehenden Begriffe sind, dann nimm doch einfach 3 x-beliebige Begriffe. Und eine Tabelle mit einer Zelle, in die man etwas eintragen kann, die muss ich Dir bestimmt nicht bereitstellen.

Mir geht es wirklich nur um das "WIE". Das dann auf meine Umgebung anzupassen, das traue ich mir schon zu.

Gruß Joschi
Anzeige
AW: VBA Vorschläge auf Basis von LIKE
15.06.2024 16:54:31
Alwin Weisangler
Hallo Joschi,

Unter einer ergebnistauglichen Datei verstehe ich eine Datei mit allem (Tabellenblätter / Tabellen + ein paar Datensätze sowie bereits vorh. Prozeduren usw. ) was letztendlich mit wenig Aufwand sich erkennen und programmieren lässt.

Da ich dann zu einer Feier gehe und erst morgen nachmittag wieder dazu komme ins Forum zu schauen, habe ich mal eine Beispieltabelle genommen und den Kram drumrum gebaut.
https://www.herber.de/bbs/user/170276.xlsm

Gruß Uwe

Anzeige
AW: VBA Vorschläge auf Basis von LIKE
15.06.2024 18:01:17
Joschi Witchcraft
Hallo Uwe.

Herzlichen Dank für Dein Beispiel.

Ich werde mich morgen damit beschäftigen und versuchen, den Ablauf zu verstehen. Bis dahin: schönen Abend.

Gruß Joschi
AW: VBA Vorschläge auf Basis von LIKE
16.06.2024 08:49:00
Joschi Witchcraft
Hallo Uwe.

Ich habe mir Dein Beispiel angeschaut und natürlich auch probiert. Grundsätzlich funktioniert es.

In Deiner Mappe sind das Eingabefeld für den Suchbegriff und das Auswahlfeld für die Treffer fest vorgegeben. Da ich die damit verbundene Funktion nur sporadisch benötige, und ein Ribbon laut meiner Internetsuche nicht dynamisch erstellt werden kann, wird der Bereich für die Anzeige meiner Datenzeilen dadurch eingeschränkt. Deshalb werde ich mich für eine andere Lösung entscheiden.

Deinen Code habe ich inzwischen derart angepasst, dass ein LIKE-Suchbegriff verwendet werden kann. Das ist für mich ein Teil für meine gesuchten Lösung. Dafür herzlichen Dank.

Gruß Joschi
Anzeige
AW: VBA Vorschläge auf Basis von LIKE
16.06.2024 16:24:34
Alwin Weisangler
hmmm...???,

also mal von vorn.
Die Funktion InStr() ist etwas wenn auch nicht viel flotter unterwegs als der Like Operator. Das war der Grund warum ich auf die InStr() Funktion zurückgegriffen habe.

Die Wörter aus einer externen Textdatei einlesen, egal ob UTF-8/16 oder wie auch immer, braucht es mehr als das was ich in meiner Beispieldatei geliefert habe.
Es würde auch keinen Sinn machen den Inhalt der externen Textdatei in eine Tabelle zu lesen um diese dann in ein Array zu laden - Schildbürgerei.

Damit sind wir beim Stichwort Beispieldatei: Das hat was mit Höflichkeit und Demut zu tun, wenn man sich freiwillige Hilfe von Anderen wünscht. Aber das mal nur am Rande. Es scheint ein massives Problem unserer Zeit zu sein.

Zurück zur Anwendung: Man kann Ribbon-Elemente ein- und ausblenden. Zu den Ribbon-Elementen gehören auch Tabs. Dynamisch erzeugte Dinge wie Controls etc. sind eine ganz andere Sache.
Lese dich zum Thema Ribbon Userinterface einfach mal in Ruhe in diese Materie ein.

Userforms nutzte ich auch gern, wenn ich nicht nebenher in den Tabellen agieren muss. Sonst fängt man dann an, wenn zumindest nur ein Monitor vorhanden ist, dieses lästige Formular hin und her zuschieben. Deshalb ab ins Ribbon mit dem bisschen Kram. Damit erklärt sich, warum ich aufs Ribbon zurückgegriffen habe.
Außerdem ist die Programmierung im Ribbon schön zickig, was einem zum absolut sauberen Programmieren erzieht. Es schmiert nur einmal ab - danach ist nichts mehr im selber erzeugten Ribbonteil möglich. Es bleibt nur Datei zu beenden und erneuten öffnen übrig.

Im Prinzip hast du was du brauchst. Belese dich zu den noch offenen Dingen und programmiere vorsichtig weiter und lerne durch Erfolg und Misserfolg. Der Erfolg, wenn es klappt tut auch mal gut.

Wenn dann noch was unklar ist, lade die Demo nebst kurzer Beschreibung der nicht verstandenen Problematik im aktuellen Entwicklungsstand hoch. Dann wird dir auch geholfen.

Gruß Uwe



Anzeige
AW: VBA Vorschläge auf Basis von LIKE
16.06.2024 16:45:26
Joschi Witchcraft
Hallo Uwe.

Danke für Deine Antwort.

Die Like-Funktion habe ich genutzt, weil ich die Begriffe generisch (z. B. "S##*") auswählen möchte, was mit Instr() und meinem Kenntnisstand nicht möglich ist. Das hatte ich bereits im Titel meiner Anfrage zum Ausdruck gebracht.

Es ist toll, wenn man Ribbon ausschalten kann. Und wie schalte ich den ein, wenn ich das Bedürfnis habe, eine Suche zu starten?

Gruß Joschi
Anzeige
AW: VBA Vorschläge auf Basis von LIKE
17.06.2024 09:53:48
Alwin Weisangler
Hallo,

ich habe nirgendwo etwas geschrieben, das du Ribbon aus- bzw. einschalten sollst. Geschrieben habe ich Ribbon Elemente ein- bzw. ausblenden. Das Ribbon-Element um was es hier dreht heißt Tab.
Ein- bzw. ausblenden kann man über eine kleine Prozedur. Diese Prozedur kann man ganz nach belieben via Button oder Tastenkombi starten.
Wenn du gelernt hast wie man ein AddIn programmiert so wie Thorsten es dir vorschlug, kann man wenn das AddIn benötigt wird in den Entwicklertools einfach den Haken reinsetzen und der Tab steht zu Verfügung.

Zu dieser Thematik sollst du dich belesen und durch üben erlernen wie man funktionssicher so was programmiert. Das schafft kein Mensch in einer reichlichen halben Stunde.

Gruß Uwe
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige