Thema Datum  Von Nutzer Rating
Antwort
Rot Variable Startposition in der InStr-Funktion
18.09.2014 13:13:40 Christoph
Solved
18.09.2014 14:30:31 Gast47196
****
NotSolved
19.09.2014 08:36:22 Christoph
NotSolved
19.09.2014 09:01:15 Christoph
NotSolved
19.09.2014 15:27:44 Gast47196
NotSolved
19.09.2014 09:55:56 Gast99848
NotSolved
20.09.2014 09:36:28 Christoph
NotSolved

Ansicht des Beitrags:
Von:
Christoph
Datum:
18.09.2014 13:13:40
Views:
1395
Rating: Antwort:
 Nein
Thema:
Variable Startposition in der InStr-Funktion

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


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Variable Startposition in der InStr-Funktion
18.09.2014 13:13:40 Christoph
Solved
18.09.2014 14:30:31 Gast47196
****
NotSolved
19.09.2014 08:36:22 Christoph
NotSolved
19.09.2014 09:01:15 Christoph
NotSolved
19.09.2014 15:27:44 Gast47196
NotSolved
19.09.2014 09:55:56 Gast99848
NotSolved
20.09.2014 09:36:28 Christoph
NotSolved