Office: Import bestimmter Zeilen & Spalten aus .txt

Helfe beim Thema Import bestimmter Zeilen & Spalten aus .txt in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Jungs & Mädels, ich habe ein Problem, dessen Lösung mir irgendwie nicht gelingen will: Ich habe eine .txt datei vorliegen mit ca.400.000... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von IchKannsAuchBald, 17. Oktober 2014.

  1. Import bestimmter Zeilen & Spalten aus .txt


    Hallo Jungs & Mädels,

    ich habe ein Problem, dessen Lösung mir irgendwie nicht gelingen will:

    Ich habe eine .txt datei vorliegen mit ca.400.000 Zeile und 8 Spalten, getrennt mit jeweils mit ;
    Davon möchte ich die letzten 17.000 importieren, am besten auch noch nur die Spalten 1 / 2 / 6

    Bisher sieht mein Code folgendermaßen aus, der bis auf das oben genannte Problem super funktioniert
    Code:
    Sub einlesen()
        Dim Pfad As String
        Dim Datei As String
        Dim Pfad_Datei As String
        
        With Worksheets("WindSpeedRohdaten")
                Columns("A:H").Select
                Selection.ClearContents
                'Hole aus Zelle L2 den Pfad
                Pfad = .Range("L2").Value
                'Hole aus Zelle O5 den Dateinamen
                Datei = .Range("O5").Value
            End With
                'Überprüfe, ob Pfad am Ende einen "\" hat;
            'falls nicht füge ihn an
        If Right(Pfad, 1) <> "\" Then Pfad = Pfad & "\"
            'Gib beides Pfad+Dateiname als Rückgabewert aus der Funktion zurück
        Pfad_Datei = Pfad & Datei
        
            
      
            Z = Sheets("WindSpeedRohdaten").UsedRange.Rows.Count
        
          
       
       Open Pfad_Datei For Input As #1
                Do While Not EOF(1)
                    Line Input #1, temp
                    Sheets("WindSpeedRohdaten").Cells(Z, 1) = temp
                    Z = Z + 1
                Loop
            Close #1
        
        For j = 1 To Z
            Text = Split(Cells(j, 1), ";")
            For i = 0 To UBound(Text)
                Cells(j, i + 1) = Text(i)
            Next
        Next
    End Sub
    
    Viele Dank schonmal für kreative Vorschläge
     
    IchKannsAuchBald, 17. Oktober 2014
    #1
  2. miriki Erfahrener User
    Moinsens!

    Naja, allzu viele Möglichkeiten gibt es nicht. Es wäre natürlich viel einfacher, wenn Du die _ersten_ 17k Zeilen bräuchtest. Aber die _letzten_ 17k Zeilen sind dann schon etwas aufwändiger...

    Du könntest, wenn Dein Excel es zuläßt (mehr als 64k Zeilen verarbeiten kann) die Liste komplett in ein temporäres Blatt einlesen, vom Ende ab rückwärts zählen und den Bereich dann in das endgültige Blatt verschieben. Das ist von der Verarbeitung her wohl die schnellste Lösung, braucht aber auch den meisten Speicher.

    Alternativ könntest du einen FIFO-Speicher für die Zeilen bauen: Du fängst an, die Datei zeilenweise in einen Zwischenspeicher (Array im Speicher oder Zeilen in einem Blatt) einzulesen, bis die gewünschte Anzahl an Zeilen erreicht ist. Dann löscht Du für jede weitere, eingelesene Zeile die oberste aus der Liste raus. Die Liste wird also nie länger als die gewünschte Anzahl von Zeilen. Die Verarbeitung dürfte aber um einiges langsamer sein, als die erste Variante.

    Warum liest Du die Datei eigentlich manuell ein? Ein worksheet.queries.add dürfte Dir da einiges an Tipparbeit im Source ersparen.

    Gruß, Michael
     
  3. Danke Michael!

    Ich hab das Problem gelöst, indem ich alle Zeilen importieren lassen, danach zählen lasse und dann die gezählte Anzahl an Zeilen (abzüglich der 17k die ich brauche) löschen lasse. Jetzt braucht er zwar immernoch ca 15-20sec zum importieren, die Verarbeitung danach läuft aber wesentlich schneller.

    Nicht elegant aber es läuft :D
     
    IchKannsAuchBald, 22. Oktober 2014
    #3
Thema:

Import bestimmter Zeilen & Spalten aus .txt

Die Seite wird geladen...
  1. Import bestimmter Zeilen & Spalten aus .txt - Similar Threads - Import bestimmter Zeilen

  2. Wahrscheinlich nicht neu - Makros exportieren

    in Microsoft Word Hilfe
    Wahrscheinlich nicht neu - Makros exportieren: Hallo zusammen, dies ist mein erster Thread... Also, ich habe zwei Rechner in meinem Wlan Netzwerk verbunden, damit ich an derselben Software arbeiten kann (ein Rechner Hauptrechner, einer...
  3. Import aus Web - Scriptfehler

    in Microsoft Excel Hilfe
    Import aus Web - Scriptfehler: Hallo, ich benutze Office 2016 auf einem Windows 11 Rechner. Ich habe jetzt bei Youtube entdeckt, dass man Tabellendaten aus einer Webseite importieren kann. Beim Ausprobieren über "Daten/aus dem...
  4. Daten-Import inkl. Primärschlüssel

    in Microsoft Access Hilfe
    Daten-Import inkl. Primärschlüssel: Hallo! Ich habe eine Accesstabelle, die ich in Sharepoint importieren möchte, brauche jedoch auch die - gleichen - IDs, die zugleich auch als Primärschlüssel fungieren und ich diese als...
  5. VBA Variableninhalt nach import aus zwei verschiedenen Dateien verschieden >Leer< und >""<

    in Microsoft Excel Hilfe
    VBA Variableninhalt nach import aus zwei verschiedenen Dateien verschieden >Leer< und >""<: Halle Excel Freaks, nach dem Import in eine Exelmappe aus einer anderen Mappe greife ich auf eine Zelle zu. In beiden Mappen steht in der Zelle nichts Beim Debuggen ist mir aufgefallen:...
  6. Power Query Import von Exceldatei

    in Microsoft Excel Hilfe
    Power Query Import von Exceldatei: Hallo in die Runde! Ich habe ein etwas komisches Problem. Beim Import einer Exceldatei "verschwindet" eine Zelle. In der letzten Zeile der Tabelle steht in in der Spalte A die Firmenbezeichnung...
  7. CSV in Outlook

    in Microsoft Excel Hilfe
    CSV in Outlook: Wie kann ich die Uhrzeit eines Termins über die CSV-Datei in Outlook importieren?
  8. Import einer Excel Datei in den Kalender

    in Microsoft Outlook Hilfe
    Import einer Excel Datei in den Kalender: Ich habe einen *.cvs Datei erstellt und möchte diese in den Outlook Kalender importieren. Wenn ich den Import starte, stellt Outlook einen Fehler fest und startet neu. Woran kann das liegen?
  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