Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1660to1664
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

Suche mit Regulären Ausdruck als Eingabe

Suche mit Regulären Ausdruck als Eingabe
17.12.2018 15:46:31
Christian
Hallo zusammen,
ich möchte folgendes erreichen:
Auf einer Tabellenseite "GUI" habe ich eine Zelle, in der man einen Regulären Ausdruck eingeben kann. Bei diesem Ausdruck handelt es sich immer um Seriennummern. Da diese, je nach Hersteller, unterschiedlich formatiert sein können benötige ich diese Möglichkeit der Eingabe mit einem regulären Ausdruck.
Auf einer anderen Tabellenseite "Serialnr. List" werden zu unterschiedlichen Projekten jeweils in einer Spalte die Seriennummern zu den verbauten Teilen eingetragen. Durch eine intelligente Suchfunktion möchte ich, dass es Möglich ist einen regulären Ausdruck als Sucheingabe zu formulieren und dann in den Spalten nach dieser Seriennummer zu suchen. Wird die gewünschte Nummer gefunden soll in dessen Zelle gesprungen werden, ansonsten eine kleine MsgBox mit einer Meldung.
Ich hoffe ich konnte mein Problem deutlich machen und bedanke mich im voraus!
Mit freundlichem Gruß
Christian K

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche mit Regulären Ausdruck als Eingabe
17.12.2018 15:56:38
Daniel
Hi
wie umfangreich möchtest du reguläre Ausdrücke verwenden?
die normale Suchfunktion von Excel beherrscht die Jokerzeichen "*" (beliebige Zeichen) und "?" (genau ein Zeichen)
Reicht dir das ggf schon aus?
Gruß Daniel
AW: Suche mit Regulären Ausdruck als Eingabe
17.12.2018 16:12:43
Christian
Grüße,
also sei z.B. eine Seriennummer laut Hersteller Typenschild "1234-5678/9.12" und wurde demensprechend in die Spalte eingetragen. Oder auch anders, d.h. z.B. "1234-5678-9-12". Dann soll ich die Möglichkeit haben im Suchfeld : "1234[-,/,.,,,_]5678[-,/,.,,,_]9[-,/,.,,,_]12" einzugeben, um alle Möglichkeiten der Eingabe zu berücksichtigen. Die Suche soll also die Sonderzeichen nicht mit berücksichtigen.
Mit freundlichem Gruß
Christian K
PS: Ich schaue morgen früh wieder vorbei nach weiteren Antworten, Danke!!
Anzeige
AW: Suche mit Regulären Ausdruck als Eingabe
17.12.2018 16:23:16
Daniel
Hi
wenn man davon ausgeht, dass die Seriennummer immer gleich strukuriert ist und auch immer die Trennzeichen vorhanden sind (nur eben unterschiedlich geschrieben), dann müsste es funktionieren, wenn du in der Suche anstatt der Trennzeichenliste den Joker "?" eingibst, dh suchen nach:
1234?5678?9?12
Gruß Daniel
AW: Suche mit Regulären Ausdruck als Eingabe
18.12.2018 06:52:31
Christian
Morgen Daniel,
ja das ist korrekt, nur brauche ich diese Möglichkeit genau deswegen, weil die Seriennummern von unterschiedlichen Herstellern auch unterschiedlich strukturiert sein können. Außerdem kann es sein, dass die Person, welche die Seriennummern einträgt, manche dieser Sonderzeichen nicht mit aufnimmt oder ändert.
Grüße
Christian K
Anzeige
AW: Suche mit Regulären Ausdruck als Eingabe
18.12.2018 08:26:22
Christian
Hallo nochmal,
deine Idee mit den ? oder * im Suchstring ist mir auch genug, da das mit dem Regulären Ausdruck möglicherweise zu kompliziert für den Endanwender sein könnte. Nun habe ich nur eine frage:
In das Suchfenster wird eine beliebig formatierte Seriennummer eingeben. Ich habe eine Funktion, welche alle Sonderzeichen daraus entfernt. Nun brauche ich eine Funktion, die diesen neuen String am Anfang und am Ende mit einem * versieht und zwischen jedem Zeichen ein ? setzt.
Also aus der Eingabe erhält man 1234-5678/9.12 daraus wird - 12345678912 und daraus soll werden - *1?2?3?4?5?6?7?8?9?1?2*
vielen Dank für eure Hilfe!!
Mit freundlichem Gruß
Christian K
Anzeige
AW: Suche mit Regulären Ausdruck als Eingabe
18.12.2018 11:01:38
Daniel
Hi
dazu würde ich mir folgende Funktion schreiben, welche beide Schritte gemeinsam durchführt:
Function FürChristian(txt As String) As String
Dim Erg As String
Dim i As Long
For i = 1 To Len(txt)
If Mid(txt, i, 1) Like "#" Then Erg = Erg & "?" & Mid(txt, i, 1)
Next
If Len(Erg) > 0 Then
Erg = "*" & Mid(Erg, 2) & "*"
End If
FürChristian = Erg
End Function
einen schöneren Funktionsnamen darfst du dir noch ausdenken.
Gruß Daniel
AW: Suche mit Regulären Ausdruck als Eingabe
18.12.2018 11:47:17
Christian
Ich habe mich den Morgen damit auseinandergesetzt und habe mir eine ähnliche Funktion zusammen gebaut:
Function sernum_regex(ByVal strWert As String) As String
Dim i As Integer
For i = 1 To Len(strWert) - 1
sernum_regex = sernum_regex & Mid(strWert, i, 1) & "?"
Next
sernum_regex = "*" & sernum_regex & Right(strWert, 1) & "*"
End Function
Damit läuft es auch aber trotzdem vielen Dank Daniel !
Schönen Tag noch und Liebe Grüße
Christian K
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige