Office: (Office 2013) VBA Textdatei Zeile einlesen

Helfe beim Thema VBA Textdatei Zeile einlesen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi liebe Community, habe mich in letzter Zeit sehr intensiv mit Excel VBA auseinandergesetzt. Dabei war mir diese Website eine große Hilfestellung,... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von ChrisLemon, 13. November 2016.

  1. VBA Textdatei Zeile einlesen


    Hi liebe Community,

    habe mich in letzter Zeit sehr intensiv mit Excel VBA auseinandergesetzt. Dabei war mir diese Website eine große Hilfestellung, was mich letztendlich auch überzeugt hat, mich hier zu registrieren. Denn um mein Makro letztendlich zum Laufen zu bringen, fehlt mir nur noch ein Bruchteil.

    Und zwar benötigte ich eine Funktion, die mir den Inhalt einer Zeile einer Textdatei zurückgibt.
    Der Funktion übergebe ich einerseits den Dateipfad meiner Textdatei, andererseits die Zeilenzahl. Den Text in dieser spezifischen Zeile soll mir die Funktion zurückgeben.

    In meinem Sub rufe ich die Funktion über
    Text = FileReadLine(Textdatei, Zeile)
    auf, wobei gilt: Textdatei enthält den Dateipfad meines Textfiles; Zeile ist ein Integer-Wert

    Zur Info, falls relevant: Die Textdatei ist relativ groß (ca. 5-10MB) und kann bis zu 150.000 Zeilen beinhalten.

    Wie mir bereits aufgefallen ist, lassen sich sehr viele Probleme mit den im Internet vorzufindenden Hilfestellungen für Excel VBA lösen. Auch für meine Frage sind verschiedene Lösungsansätze zu finden, jedoch konnte keine davon mein Makro zum Laufen bringen. (Der Debugger bleibt immer in der Funktion hängen.)

    Falls ich noch etwas vergessen haben sollte, werde ich das auf Nachfrage schnellstmöglich nachliefern.

    Vielen Dank im Voraus für jede Hilfe! *Smilie

    Chris

    :)
     
    ChrisLemon, 13. November 2016
    #1
  2. Moin!
    Dann wäre es ja nicht schlecht, wenn Du uns die UDF
    Function FileReadLine()
    mal vorstellen würdest.

    Gruß Ralf
     
  3. Hi Ralf,
    aktuell ist die Function folgendermaßen definiert:
    Public Function FileReadLine(ByVal sFile As String, ByVal nLineNumber As Long) As String
     
    ChrisLemon, 14. November 2016
    #3
  4. VBA Textdatei Zeile einlesen

    Die Funktion sollen wir ihm wohl machen :-)
    Probier das mal, könnte aber nicht so performant sein *frown.gif* Code:
     
  5. Danke für die schnellen Antworten! Ich werde es gleich ausprobieren.
     
    ChrisLemon, 14. November 2016
    #5
  6. \@Storax:
    Wenn Du early binding nutzt, solltest Du auch auch den Hinweis auf den zu setzenden Verweis geben. *Smilie
    Ich bevorzuge daher late binding:
    Code:
    Two cents und Grüße

    Ralf
     
  7. Vielen Dank für eure schnelle und wertvolle Unterstützung, Storax und Ralf. Das Sub habe ich bereits getestet und läuft (wie erwartet) problemlos. Um die Implementierung werde ich mich selber kümmern können.

    Nochmals vielen Dank und einen schönen Tag.

    Viele Grüße

    Chris
     
    ChrisLemon, 14. November 2016
    #7
  8. VBA Textdatei Zeile einlesen

    Hallo zusammen,

    ich melde mich wieder, da ich vor einer Herausforderung stehe. Mit dem von Storax geschriebenen/geposteten Sub lassen sich einzelne Zeilen sehr gut aus einer Datei auslesen. Bedingung hierfür ist jedoch, dass die Textdatei nicht zu groß ist. Da das bei mir allerdings rein theoretisch der Fall sein könnnte, muss ich dies in Betracht ziehen.

    Daher stellt sich mir die Frage, ob es auch einen anderen Lösungsweg gibt, eine Funktion zu schreiben, die eine bestimmte Zeile (definiert über die Zeilenzahl) aus sehr großen Dateien einließt, ohne den gesamten Text einer Textdatei vor dem Durchsuchen in einer Variablen abzuspeichern.


    Mein Sub ist hier (wahrscheinlich) nicht von Interesse, da meiner Meinung die Rahmenbedingungen klar definiert sind. Falls jedoch weitere Fragen auftauchen sollten, werde ich diese schnellstmöglich beantworten!

    Ich bin (wieder einmal *Smilie für jede Hilfe dankbar!

    lg Chris
     
    ChrisLemon, 16. November 2016
    #8
  9. Alternative:

    Code:
     
  10. Worin siehst Du da ein Problem? Mit Beliebige Datei einlesen beherrscht man perfromant auch größere Dateien, in meiner Wahrnehmung bis etwa 2 GB.
    Auf eine bestimmte Zeile käme man dann z.B. per Split.

    Wenn man etwas mehr über die Struktur der Textdatei wüsste, könnte man über weitere Ansätze nachdenken, siehe bestimmte Anzahl der letzten Datensätze einer Textdatei auslesen
     
  11. Guten Morgen,
    vielen Dank für die Rückmeldung, xlph & Eberhard.

    @xlph
    Einen ähnlichen Code habe ich auch bereits versucht, siehe nachfolgend:
    Code:
    Leider werden nur die ersten benötigten Zeilen meiner Textdatei in Excel ausgelesen, bevor Excel letztendlich abstürzt.Trotzdem, vielen Dank für dein Engagement!

    @Eberhard aka ebs17
    Bisher hatte ich bei kleinen Testdateien kein Problem, die Textdatei in eine Variable einzuspeichern, so wie es der Code von "Storax" macht. Bei der Verarbeitung größerer Textdateien stürzte Excel ab. Ich werde vorerst anhand der von dir genannten Links versuchen, mein Problem zu lösen.

    Vielen Dank für Eure Unterstützung.

    Viele Grüße

    Chris
     
    ChrisLemon, 16. November 2016
    #11
  12. Für Excelabstürze kannst Du wohl kaum eine Textdatei verantwortlich machen , sondern eher die Excelmappe, die Art der Dateneintragung in die Mappe oder eine fehlerhafte Excelinstallation.
     
  13. VBA Textdatei Zeile einlesen

    Das sehe ich genauso, der Absturz hat hier nix mit dem Code zu tun.
     
  14. Hallo zusammen,

    mit den Lösungsansätzen von Eberhard habe ich mein Makro zum Laufen gebracht.
    Was letztendlich meine vorherige Version zum Abstürzen brachte, kann ich leider nicht sagen, da ich den Grund nicht kenne (ich gehe aber davon aus, dass es am Bediener, also an mir lag :P).

    Zur Funktionstüchtigkeit:
    Zugegebenermaßen dauert es eine gewisse Zeit (30 sec), bis bestimmte Zeilen einer Textdatei mit insgesamt 130.000 Zeilen ausgelesen werden, die Zeitoptimierung ist in meinem Fall jedoch von geringerer Bedeutung.

    Damit richte ich ein HERZLICHES DANKESCHÖN an alle Beteiligten für Euren Support!

    Viele Grüße

    Chris
     
    ChrisLemon, 16. November 2016
    #14
  15. Habe einen Test gefahren.

    Binäres Einlesen + Split vs. Zeilenweises Durchschleifen

    Code:
    Ergebnis auf meinem PC:
    Fürs Durchschleifen gar nicht so schlecht.
     
Thema:

VBA Textdatei Zeile einlesen

Die Seite wird geladen...
  1. VBA Textdatei Zeile einlesen - Similar Threads - VBA Textdatei Zeile

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Text via VBA in Textdatei (txt) suchen und ersetzen

    in Microsoft Excel Hilfe
    Text via VBA in Textdatei (txt) suchen und ersetzen: Hallo Leute Ich habe hier ein kleines(!) Problem mit mehreren Txt-Dateien. In einem Ordner (fix) sind mehrere Text-Dateien (>150) gespeichert. Diese wurden fehlerhalft erstellt. Sowohl der...
  5. Textdatei aufrufen/anzeigen per VBA

    in Microsoft Excel Hilfe
    Textdatei aufrufen/anzeigen per VBA: Guten Morgen ich möchte gerne in meinem Excel-Makro eine Textdatei aufrufen. Also ich möchte sie nicht irgendwie zum Bearbeiten öffnen, sondern ich möchte das sie angezeigt wird. Ich habe hier im...
  6. VBA Parameterabfrage und Export Textdatei

    in Microsoft Access Hilfe
    VBA Parameterabfrage und Export Textdatei: Hallo, ich muss eine Buchungsdatei als Textdatei erstellen. Hierzu habe ich mir eine Abfrage erstellt und in dieser Parameter angegeben. Eine andere Abfrage wertet die erste Abfrage aus und...
  7. Textdatei mit VBA einlesen

    in Microsoft Access Hilfe
    Textdatei mit VBA einlesen: Mahlzeit! Ich knabber gerade an folgendem Problem: eine Textdatei mit Trennzeichen soll nach A97 importiert werden. Allerdings müssen die ersten beiden und die letzte Zeile entfernt werden. Ich...
  8. mehrere Textdateien mit VBA zu einer PDF zusammenfassen

    in Microsoft Excel Hilfe
    mehrere Textdateien mit VBA zu einer PDF zusammenfassen: Hallo Gemeinde! kann mir bei dem Thema jemand helfen? Danke schon mal Stefan
  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