Option Explicit
Public Sub MySearch4Title()
Dim Maschine, ETnummer, TitelNummer
Dim result
With Worksheets("Tabelle1") '<- ggf. anpassen
With .Range("B1", .Cells(.Rows.Count, "B").End(xlUp)).Resize(, 1) '<- ggf. anpassen
'Hilfsspalte (vor dem Datenbereich) einfügen
.Insert xlShiftToRight
With .Offset(, -1)
'Hilfsspalte mit Formel befüllen
.FormulaR1C1 = "=CONCATENATE(RC[1],CHAR(10),RC[2])"
' >>>>>>
' >> Nachfolgender Abschnitt kann auch in einer Schleife stehen, um mehrere
' >> Suchanfragen auszuführen.
' >>>>>>
'einzelnes Beispiel für Suche
Maschine = "KM1" '<- ggf. anpassen (oder per Schleife setzen)
ETnummer = "33456" '<- ggf. anpassen (oder per Schleife setzen)
TitelNummer = "407" '<- ggf. anpassen (oder per Schleife setzen)
'suche nach [Maschine]+[ETNummer]
Set result = .Find(Maschine & vbLf & ETnummer, , xlValues, xlWhole, xlByRows, xlNext, False)
If Not result Is Nothing Then
'suche rückwärts vor [Maschine]+[ETNummer] nach [Maschine]+[TitelNummer]-[*irgend_etwas*]
Set result = .Find(Maschine & vbLf & TitelNummer & "-*", result, xlValues, xlWhole, xlByRows, xlPrevious, False)
If Not result Is Nothing Then
result = Split(result, vbLf)
result = Right$(result(1), Len(result(1)) - Len(TitelNummer) - 1)
Else
result = Empty
End If
Else
result = Empty
End If
'Ausgabe im Direktfenster/-bereich
If Not IsEmpty(result) Then
Debug.Print Maschine; Tab(8); ETnummer; Tab(18); TitelNummer; Tab(10); "=> "; result
Else
Debug.Print Maschine; Tab(8); ETnummer; Tab(18); TitelNummer; Tab(10); "?? nicht_gefunden ??"
End If
' <<<<<<
' << Hier wäre das Ende der Schleife.
' <<<<<<
'Hilfsspalte entfernen
.Delete xlShiftToLeft
End With
End With
End With
End Sub
|