Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Suchfunktion

Betrifft: Suchfunktion von: Armin
Geschrieben am: 02.07.2008 12:58:41

Hallo,

ich habe folgendes Problem.

Ich suche mit nachfolgendem Makro nach einem Suchmuster innerhalb einer Excel-Datei. Soweit funktioniert das ganze auch. Nun möchet ich aber den genauen Wert des Suchmusters extrahieren und nicht den gesamten Zellinhalt.

Hier das Makro:

Sub Test_Suchmuster()
  Set ws1 = ThisWorkbook.Sheets(1)
  For i = 1 To 3
  Set suche = ws1.Cells(i, 1).Find("?.???.???/?-??")
  If Not suche Is Nothing Then
    MsgBox suche.Find("?.???.???/?-??")
  End If
  Next i
End Sub



Wenn z. B. der Zellinhalt wie folgt lautet: "Wert 1.234.567/1-22 Artikel" dann findet das Makro korrekt die Zelle liefert aber als Inhalt den gesamten Zellinhalt zurück.
Ich bräuchte allerdings nur den Wert "1.234.567/1-22" aus der Zelle, der eben dem Suchmuster entspricht.

Gibt es dafür eine Lösung?

Vielen Dank

Armin

  

Betrifft: AW: Suchfunktion von: Matthias G
Geschrieben am: 02.07.2008 13:12:19

Hallo Armin,

ich weiß nicht, ob's was schnelleres gibt, versuch es mit folgender UDF:


Function HoleMuster(s As String, sm As String) As String
    Dim i As Integer, found As Boolean
    
    For i = 1 To (Len(s) - Len(sm)) + 1
    If Mid(s, i, Len(sm)) Like sm Then found = True: Exit For
    Next i
    If found Then
        HoleMuster = Mid(s, i, Len(sm))
    End If
End Function


Teste es hiermit:


Sub test()
    Dim s$, sm$
    s = "Wert 1.234.567/1-22 Artikel"
    sm = "?.???.???/?-??"
    MsgBox HoleMuster(s, sm)
End Sub


Gruß Matthias