Office: Extrem große txt Datei einlesen und bearbeiten

Helfe beim Thema Extrem große txt Datei einlesen und bearbeiten in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe seit vielen Jahren nicht mehr mit VBA gearbeitet und versuche mich gerade wieder zurechtzufinden. Man vergisst so einiges!... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von rufWerner, 11. Oktober 2019.

  1. Extrem große txt Datei einlesen und bearbeiten


    Hallo zusammen,

    ich habe seit vielen Jahren nicht mehr mit VBA gearbeitet und versuche mich gerade wieder zurechtzufinden. Man vergisst so einiges!

    Mein Code soll mir das bearbeiten von sehr langen txt Dateien automatisieren.
    Die Daten liegen als xyz Datei vor und beinhalten Koordinaten mit den 3 Werten Rechtswert(y), Hochwert(x) und Höhe(z).
    Nun müssen diese Daten mit einer fortlaufenden Punktnummer, einem gemeinsamen Punktcode und evtl. einer Additionskonstante für die Koordinaten versehen werden.
    Nur so können die Daten von einem anderen Programm verarbeitet werden.

    Das erste Problem ist, dass die Dateien schon mal über 2 Millionen Datensätze haben können!
    Beim manuellen Bearbeiten mußte die Datei deshalb, vor dem Import in Excel, in 2 Teile aufgespalten werden. Bei ca 1,2 Millionen Zeilen ist Schluß mit lustig!

    Den Code für Import habe ich mittlerweile hinbekommen, hab dafür ein Makro aus irgendeinem Forum genommen und angepasst.
    Das Ganze funktioniert bei kleineren Dateien wunderbar.
    Kann man die Anzahl der Daten vor dem Import bestimmen?
    Ich habe da im Netz nichts gefunden !
    Sollte das nicht möglich sein, könnte ich damit leben die (seltenen) übergroßen Dateien, vorher zu splitten.
    Viel schlimmer ist, dass meine ForNext Schleife für das Einfügen von Punktnummer und Code, nicht funktioniert!
    Das hatte ich mir eigentlich einfacher vorgestellt.
    Wenn ich den Code ohne UserForm und Textfelder mit definierten Variablen starte, funktioniert alles.
    Beim Ausführen über den StartButtom scheint sich Excel aufzuhängen und macht einfach garnichts.
    Vielleicht findet hier jemand den Fehler, oder kennt sogar die Lösung für die übergroßen Dateien!
    Hier mal mein Makro:

    Code:
    Und so sehen die Rohdaten aus:

    456154.057 5724899.390 77.602
    456154.557 5724899.390 77.527
    456155.057 5724899.390 77.438
    456155.557 5724899.390 77.342
    456156.057 5724899.390 77.323
    456156.557 5724899.390 77.351

    Ich bin für jede Hilfe dankbar !

    :)
     
    rufWerner, 11. Oktober 2019
    #1
  2. Hallo,

    anstatt mit VBA würde ich die mit Power Query (Get & Transform) realisieren.

    Anhand deiner Rohdaten und dem VBA-Code kann ich aber nicht erkennen, wie das Ergebnis aussehen soll.

    Wenn du das besser erläuterst, dann kann ich dir vermutlich eine PQ-Lösung zeigen.

    Power Query ist seit der Version 2016 immer an Board und kann ab der Version 2010 kostenlos nachgerüstet werden. Bei der 2010er Version gibt es aber u.U. Einschränkungen.
     
  3. Extrem große txt Datei einlesen und bearbeiten

  4. Danke für die Antworten,

    ich würde schon gerne bei Excel bleiben, von PowerQuery hab ich noch nichts gehört.
    Die Spalten kann ich wohl nicht alle nutzen, da die Datei am Ende als CSV Datei exportiert werden muss. Ich kann mir nicht vorstellen das Excel den Export hinbekommt wenn die Daten nicht alle in der richtigen Spalte stehen.
    So sollen die Daten nachher aussehen:
    vorher:
    456154.057 5724899.390 77.602
    456154.557 5724899.390 77.527
    ....
    nachher:
    10001 4 32456154.057 5724899.390 77.602
    10002 4 32456154.557 5724899.390 77.527
    ....
    Wie gesagt, wenn das mit dem Splitten nicht geht wäre es kein Beinbruch die Datei vorher zu teilen und seperat zu bearbeiten.
    Wichtiger ist mir die ForNext Schleife, ich finde einfach den Fehler nicht.
    Die Variable "Zeilenanzahl" wird richtig ermittelt und in der UserForm angezeigt.
    Der Wert für pnr wird über ein Textfeld eingegeben, Punktcode, addy und addx
    habe ich vorher in einem Kombinationsfeld vorgegeben.
    Die Werte für addy und addx fehlen noch im Code, da ich schon beim Einfügen von Punktnummer und Punktcode scheitere.
     
    rufWerner, 13. Oktober 2019
    #5
  5. Und Danke Storax für die Links, das werde ich mir genauer anschauen, klingt vielversprechend!
     
    rufWerner, 13. Oktober 2019
    #6
  6. Also brauchst excel nur zum verarbeiten?
    So genügt es dir doch die Dateien einzulesen, zu verarbeiten und direkt wieder eine Textdatei zu schreiben.

    Schau die Dir() sowie Open() Methode an.
     
  7. Extrem große txt Datei einlesen und bearbeiten

    Guter Punkt @Mase.

    Dann ist es im Grunde einfacher, sed oder awk erledigen so etwas.
    Dürfte sich mit den Tools nur um wenige Zeilen Code handeln wenn nicht gar nur eine Zeile.

    Oder man nimmt Powershell.

    Aber wie so oft, wer nur einen Hammer hat, für den sieht jedes Problem wie ein Nagel aus.
     
  8. I know - versuche Wunsch des TO, Excel aufgrund alter Erfahrungen zu halten, zu berücksichtigen.
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
  9. Hallo,

    Power Query ist ein Teil von Excel !!!!

    Jetzt sehe ich zwar vorher und nachher, aber nach welcher Logik sich " Regeln sich "nachher" ergibt, erschliesst sich mir dadurch immer noch nicht.
     
  10. Hallo Mase,
    die Prozedur habe ich ja schon einige Male gemacht, ist ja auch nicht schwierig.
    Aber man bekommt beim Auffüllen der Zellen einen Krampf in der Hand!
    Es handelt sich ja um Files mit 500000 - 2Mio Einträgen!
    Diese Schinderei soll Excel für mich erledigen, und das sieht ja mit einer schönen Userform richtig gut aus!
    Es wäre toll wenn sich jemand mal den Code vom Startbuttom genauer ansehen könnte:

    Code:
    Anscheinend liegt es an der Abfrage der Werte aus den jeweiligen Textboxen.
    Vielleicht ist ja Value nicht angebracht?
     
    rufWerner, 13. Oktober 2019
    #11
  11. Hallo WS 53,

    die Regel ist folgende:
    Die Daten aus der txtDatei werden in Spalte C-E geschrieben
    (Das klappt auch)
    Mit der Schleife sollen die Spalte A mit der eingegebenen Punktnummer(aus Textbox) aufsteigend gefüllt werden.
    In Spalte B kommt der Punktcode z.B. 4 und dann sollen noch die Koordinaten der Spalte C und D mit einer Konstanten ( bei Y z.B. 32000000) addiert werden.
     
    rufWerner, 13. Oktober 2019
    #12
  12. Extrem große txt Datei einlesen und bearbeiten

    Werner,
    wozu die Textbox bei bis zu 2 mio Datensätze ?
     
  13. Mase,
    mit der Textbox möchte ich den Anfangswert der Punktnummer, den Punktcode (mit Listenfeld) und die Additionskonstanten eingeben können.
    Diese Werte sind nicht immer gleich und ich finde, dass so ein Formular immer was hermacht.
    Im Prinzip kann ich das Makro dann für jede meiner Dateien anwenden und brauche nur auf 3 Knöpfe zu drücken.
    Schließlich brauche ich für das Erzeugen der Daten schon einiges an Arbeitszeit, da soll das Umwandeln möglichst automatisiert erfolgen.
     
    rufWerner, 13. Oktober 2019
    #14
  14. zu Problem 1)
    Textdatei mit 'Input As ' zeilenweise lesen, mit UserForm Startdaten verändern und mit 'Output As' in eine Textdatei schreiben.

    Zu Problem 2)
    Mal Deine Datei und ne Txt (anonymisiert) hochladen. Dann würde ich (bzw sicherlich auch Andere) reinschauen
     
Thema:

Extrem große txt Datei einlesen und bearbeiten

Die Seite wird geladen...
  1. Extrem große txt Datei einlesen und bearbeiten - Similar Threads - Extrem große Datei

  2. Formel vereinfachen, aktuelle Formel führt zu extrem langen Ladezeiten bei Excel

    in Microsoft Excel Hilfe
    Formel vereinfachen, aktuelle Formel führt zu extrem langen Ladezeiten bei Excel: Hallo zusammen, ich hoffe mal wieder auf eine gute Idee oder eine Hilfe aus dem Forum. Ich habe mal einen kleinen Ausschnitt meiner Datei hochgeladen, die ich erstellt habe. Mir geht es um eine...
  3. AutoFilter macht Liste extrem langsam

    in Microsoft Excel Hilfe
    AutoFilter macht Liste extrem langsam: Guten Tag zusammen! Ich habe eine Liste mit derzeit ca. 1200 Einträgen je Sheet. (6 Blätter insgesamt) Keine Formeln, nur Daten allerdings bedingte Formatierungen. diese gehen jewils über die...
  4. Access startet extrem langsam

    in Microsoft Access Hilfe
    Access startet extrem langsam: Hallo zusammen, wir haben bei einem Kunden ein merkwürdiges Phänomen: Eine Datenbank auf AC2010- Basis, die auf verschiedenen Plattformen einwandfrei läuft, startet auf zwei Rechnern (Win7)...
  5. Teams extrem langsam geworden

    in Microsoft Teams Hilfe
    Teams extrem langsam geworden: Hallo zusammen Ich verwende Microsoft Teams schon seit über zwei Jahren in meine Firma. In den letzten Wochen/Monaten ist das Programm extrem langsam geworden, was mir die Arbeit sehr erschwert....
  6. MS Teams extrem langsam

    in Microsoft Teams Hilfe
    MS Teams extrem langsam: Hallo Community, wir haben folgendes Problem, dass wenn wir ein Dokument über MS-Teams bearbeiten, wird dies immer langsamer. Teilweise ist das Dokument nicht mehr bearbeitbar und man muss die...
  7. HILFE! Große Probleme mit gewissen Word-Dokumenten.

    in Microsoft Word Hilfe
    HILFE! Große Probleme mit gewissen Word-Dokumenten.: Hallo zusammen Leider konnte ich auf mein Problem nirgendwo eine Antwort finden. Es ist so: Ich habe mit manchen Word-Dokumenten - es sind Bücher mit deutschem und arabischem Text und vielen...
  8. Säulendiagramm bei extrem unterschiedlichen Größen

    in Microsoft Excel Hilfe
    Säulendiagramm bei extrem unterschiedlichen Größen: Hallo @all ich habe eine Tabelle in der alle Werte, bis auf einen, zwischen 0 und 15 (%) liegen, wobei die meisten davon zwischen 0 und 5 liegen. Der Ausreisser liegt bei 83 (%). Werden die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden