Hallo zusammen!
Meine VBA-Kenntnisse habe ich mir soweit selber angeeignet (hatte im Studium nur eine Vorlesung zu "C"). Jetzt bin ich aber mit meinem Latein am Ende....
Zum Programmablauf:
Es wird eine Textdatei gescannt und auf ein (vom Benutzer eingegebenes) Suchwort durchsucht. Dazu ist auch noch eine Zweiteingabe möglich, die überprüft, ob das Suchwort einen bestimmten Beisatz hat. (In diesem Fall Motoren und Seriennummern)
Mein Problem: Ich verwende zum Scannen die InStr-Funktion, welche ja nur die Position der ersten Zeichenfolge im String ausgibt.
Mein gewünschter PAP würde aber so aussehen:
Suchbegriff Treffer 1
Seriennummern abgleichen (bei Treffern Entfernung zum Suchbegriff ermitteln)
Suchbegriff Treffer 2
Seriennummern abgleichen (bei Treffern Entfernung zum Suchbegriff ermitteln)
usw.
Mein bisheriger Code:
Set FS = CreateObject("Scripting.FileSystemObject")
Set Folder = FS.GetFolder("D:\Nutzer1\Versionen_TXT")
For Each File In Folder.Files
If File.Name Like "*.txt" Then
iFile = FreeFile
sFile = "D:\Nutzer1\Versionen_TXT\" & File.Name
sSearchSuchbegriff = Sheets("Tabelle1").Cells(4, 2)
sSearchSeriennummer = Sheets("Tabelle1").Cells(8, 2)
maschinenname = File.Name
Open sFile For Input As iFile
Do Until EOF(1)
Input #iFile, sTxt
positionSuchbegriff = InStr(sTxt, sSearchSuchbegriff)
If positionSuchbegriff Then 'Suchbegriff wurde gefunden und Position bestimmt
positionSeriennummer = InStr(sTxt, sSearchSeriennummer)
If positionSeriennummer And (positionSeriennummer - positionSuchbegriff) < 35 Then 'Seriennummer wurde gefunden und liegt weniger als 35 Positionen vom Suchbegriff entfernt
i = i + 1
Sheets("Tabelle1").Cells(11 + i, 1) = maschinenname
Exit Do
End If
End If
Loop
Close iFile
End If
Next
Vielen Dank schon mal für Eure Hilfe!!
Gruß,
Christoph
|