Thema Datum  Von Nutzer Rating
Antwort
Rot Ergebnisse mehrerer Matches einer Suche in einer txt-Datei nacheinander in Excel eintragen
26.04.2023 16:05:51 SaltiDave
NotSolved
27.04.2023 23:43:43 ralf_b
NotSolved

Ansicht des Beitrags:
Von:
SaltiDave
Datum:
26.04.2023 16:05:51
Views:
489
Rating: Antwort:
  Ja
Thema:
Ergebnisse mehrerer Matches einer Suche in einer txt-Datei nacheinander in Excel eintragen

Hallo,

ich beschäftige mich erst seit gestern mit Makros und VBA und habe mithilfe von Google und Beispiel-Codeschnipseln etwas hingebastelt,

dass im Ansatz funtioniert aber noch nicht so richtig.

 

folgendes Problem:

ich möchte aus einer Textdatei (.txt) mehrer bestimmte Werte auslesen und diese untereinader in Excel eintragen lassen. 

Die Textdatei ist in etwa so aufgebaut (vereinfacht):

Prüfplanname / Zeichnungsnummer Datum
XD_1087_6932 Palette V0 Korrektur D18 19 April 2023
Bezeichnung KMG Uhrzeit Auftrag
XD.1087.6932 Palette C16Bit 23:00:00 6240224_10
Prüfer Kunde Teilnummer inkremental
Reichelt MAG IAS GmbH 051
Istwert Sollwert Obere Tol. Untere Tol. Abweichung
DF |----
 0.015 0.000 0.015 0.015
Dm 42 H6 |- 
 42.010 42.000 0.016 0.010 0.000
X-Wert Kreis_A1 |- 
 199.999 200.000 0.010 -0.001 -0.010
Z-Wert Kreis_A1 |- 


 225.002 225.000 0.010 0.002 -0.010
X-Wert Kreis_A2 --| 
 174.998 175.000 0.010 -0.002 -0.010
Z-Wert Kreis_A2 |-- 
 225.005 225.000 0.010 0.005 -0.010
.
.
.
.
X-Wert Kreis_K11 | 
 174.998 175.000 0.010 0.002 -0.010
Z-Wert Kreis_K11 |-- 
 225.005 225.000 0.010 0.005 -0.010

es werden am Ende ca 85 Werte sein die ausgelesen werden.

ich möchte die rotmarkierten Werte gern nacheinander auslesen und eintragen. Das auslesen habe ich mir jetzt schon hingebstastelt. Wahrscheinlich nicht sehr elegant, aber laut regex101 funktioniert es, dass er alle Werte erkennt.

Nur Eintragen schaffe ich noch nicht, da er mir immer nur den ersten gefundenen Wert in alle Zellen einträgt.

Vielleicht könnt ihr mir einen Tipp geben, wie in etwa ich das angehen muss. 

Hier der Code:

Sub ReadPDFFile()
    Dim WSHShell As Object
    Dim FSO As Object
    Dim regex As Object
    Dim strCommand, pdfFilePath, txtFilePath, strText, txt As String
    On Error GoTo ErrorHandling

    Set WSHShell = CreateObject("WScript.Shell")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    'Pfad der Textdatei bestimmen und Textdatei auslesen
    txtFilePath = "C:\Users\fraesen\Desktop\XD_1087_6932 Palette  V0 Korrektur D18_051_gra.txt"
    strText = FSO.OpenTextFile(txtFilePath).ReadAll
    
    'Text mit regex parsen
    Set regex = CreateObject("vbscript.regexp")
    regex.Pattern = "X-Wert Kreis_..{1,2}\s\W{1,4}[\r\n]\s\W{0,1}\d{2,3}.\d{1,3}\s\d{2,3}.\d{1,3}\s0.010\s(\W{0,1}\d.\d{1,4})"
    
   
    Set match1 = regex.Execute(strText)
    If match1.Count > 0 Then
        txt = match1(0)
        
            Dim WertEins As String
            Dim WertZwei As String
            
            WertEins = txt
            WertZwei = Right(WertEins, 6)
        
        txt = WertZwei
        
        'in Excel-Zelle einfügen
        Dim cellRange As Range
        Set cellRange = Range("C3:C6")
        cellRange.Value = txt
       
    End If
    
    'Textdatei nach getaner Arbeit wieder löschen
    'Kill (txtFilePath)

    Set regex = Nothing
    Set WSHShell = Nothing
    Set FSO = Nothing
    
    Exit Sub
ErrorHandling:
        'Ein paar Bereinigungen durchführen, falls es zu einem Fehler kommt
        'Kill (txtFilePath)
        
        Set regex = Nothing
        Set WSHShell = Nothing
        Set FSO = Nothing
        
End Sub

 

Vielen Dank schon

Grüße David


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 Ergebnisse mehrerer Matches einer Suche in einer txt-Datei nacheinander in Excel eintragen
26.04.2023 16:05:51 SaltiDave
NotSolved
27.04.2023 23:43:43 ralf_b
NotSolved