String auslesen und gezielt ausgeben
#1
Hallo Zusammen,

ich habe ein Problem mit einer vorhandenen Textdatei und bräuchte eine automatisierte Ausgabe ...

ich bekomme Daten im folgenden Format:

Code:
<uservalue titel="1234" value="E_AGVW_xyz_asd_wds~ [M_ABEWS_sasdr~ +ABCD; ~ ] " id ="id012345"/>


die Anzahl der [ ] kann varieren.

bspw. auch:
Code:
<uservalue titel="1234" value="E_AGVW_xyz_asd_wds~ [M_ABCD_abcd~ +ABCD; ~ ] [M_EFGH_text~ +EFGH; ~ ] [M_IJKL_text~ +IJKL; ~ ] " id ="id012345"/>

die Anzahl der Bedinungne in [] können mal bis zu 150 werden ...

Ich bräuchte eine Automatisierung wie ich diese Textfelder auslesen kann und dies in Excel untereinander mit dem ersten Value auflisten kann.

Also:

Code:
Spalte A | Spalte B | Spalte C
E_AGVW_xyz_asd_wd | M_ABCD_abcd | +ABCD
E_AGVW_xyz_asd_wd | M_EFGH_text | +EFGH
E_AGVW_xyz_asd_wd | M_IJKL_text | +IJKL
...


In einem Textdokument kann es zu ca. 1.500 Einträgen kommen und in jedem Einträgen bis zu maximal 150 Bedienungen ...

Hat jemand eine Idee über welche Ansatz bzw. Funktion ich das Problem angehen kann? Ich bin aktuell ein wenig ratlos und weiß gar nicht wie ich anfangen soll ... alles händisch zu machen, halte ich aber für nicht zielführend ...

Lieben Dank
Top
#2
Hi

da ich deine VBA Kenntnisse nicht kenne, hier erst mal nur ein möglicher Code für deine Bsp. Daten.

Code:
Sub D_sort()

arrDat = Split(CreateObject("scripting.filesystemobject").opentextfile("C:\Users\Nutzer\Desktop\Liste Daten.txt").readall, vbCrLf)
Z = 1
For n = 0 To UBound(arrDat, 1)
  IndGrp = Replace(Split(Split(arrDat(n), "=")(2), "~")(0), Chr(34), "")
     arrDat2 = Split(Replace(Replace(arrDat(n), "~", ""), "]", ""), "[")
       For k = 1 To UBound(arrDat2, 1)
           GesStr = IndGrp & " " & Split(arrDat2(k), ";")(0)
           Range("A" & Z).Resize(, 3) = Split(GesStr, " ")
           Z = Z + 1
       Next k
  Z = Z + 1
Next n
End Sub

Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • LaMiyu
Top
#3
Hallo Elex,

wow, danke das ging schnell und funktioniert super :)
Optimal wäre es noch, wenn ich als Nutzer nach ausführen des Makros den Dateipfad auswählen kann - muss ich mein altes VBA Wissen mal wieder auffrischen ... auch schon gut 15 JAhre her :O

Lieben Dank
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste