Office: VBA Code Dateien Einlesen

Helfe beim Thema VBA Code Dateien Einlesen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe eine kleine Frage bzw. brauche kurz Hilfe. Ich habe euch das Makro und die dazugehörige txt Datei hochgeladen. Ich habe... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von ilmiomondo, 18. November 2020.

  1. VBA Code Dateien Einlesen


    Hallo zusammen,
    ich habe eine kleine Frage bzw. brauche kurz Hilfe.
    Ich habe euch das Makro und die dazugehörige txt Datei hochgeladen.

    Ich habe folgendes Problem:
    Die Textdatei wird nicht richtig in excel importiert, d.h. es landen alle Zahlen in der ersten Spalte beim Einlesen.
    Könnt ihr mir dazu evtl. einen Tipp geben?
    Ich würde mich sehr darüber freuen.

    Grüße

    :)
     
    ilmiomondo, 18. November 2020
    #1
  2. reicht nicht Daten, Text in Spalten?

    Bitte berücksichtige das Themen die Erledigt sind als Erledigt markiert werden können. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
    Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.





    Meine Homepage Homeseite - Hajo's Excelseiten
     
  3. Hallo,

    die Textdatei hat diverse Trennzeichen (Tab und Leerzeichen).

    Hier eine Idee zum Einlesen der Datei und Einfügen z.B. ins aktive Blatt, Zelle B3.

    Das kannst Du Dir dann ja in Dein Makro entsprechend um/einbauen.

    Die Aktionen in Deinem Makro sind mir jetzt nicht so durchsichtig....


    Code:

    VBA Code Dateien Einlesen [​IMG]
    [+][-]
    ____________
    viele Grüße
    Karl-Heinz
     
  4. VBA Code Dateien Einlesen

    Vielen Dank Karl Heinz!
    Das einlesen funktioniert.
    Ich wünsche euch ein schönes Wochenende bzw. Restsonntag.

    Grüße
     
    ilmiomondo, 21. November 2020
    #4
  5. Ich bekomme noch einen Fehler in einer Zeile:

    "Sub TextDatei_Einlesen2()
    Dim sPfad As String, sData As String
    Dim iff As Integer, i As Long, oZiel As Range
    Dim sArrZL() As String, sArrSP() As String

    Set oZiel = ActiveSheet.Range("B3")
    i = 2
    sPfad = ThisWorkbook.Worksheets("Einlesen").Range("C" & i).Value
    If InStr(sPfad, "") = 0 Then sPfad = ThisWorkbook.Path & "" & sPfad
    If Dir(sPfad) "" Then 'Ist Datei vorhanden?
    Application.ScreenUpdating = False
    iff = FreeFile
    Open sPfad For Input As iff 'Datei öffnen
    sData = Replace(Input(LOF(iff), iff), vbTab, " ") 'Daten in Array einlesen
    For i = 1 To 6
    sData = Replace(sData, " ", " ") 'Leerzeichen reduzieren
    Next
    Close iff
    sArrZL = Split(sData, vbCrLf)
    For i = 0 To UBound(sArrZL)
    sArrSP = Split(Trim$(sArrZL(i)))
    oZiel.Offset(i, 0).Resize(1, UBound(sArrSP) + 1) = sArrSP
    Next i"
    Application.ScreenUpdating = True
    End If
    End Sub

    Dabei kommt folgender Fehler:
    Laufzeitfehler 1004 - Anwendungs- oder objektdefinierter Fehler?


    Vielleicht liegt es daran, dass es anstatt der kleinen Textdatei eine größere Datei mit mehreren Zeilen (8760 Zeilen) hat ( besitzt den gleichen Aufbau wie die hochgeladene Datei). Mir ist gerade aufgefallen, dass die Laufvariabel i bis 548 begrenzt ist ?

    Eigentlich wollte ich nur ein VBA Code wieder aufbauen: es befindet sich in der Zeile 1 Spalte A der Pfad der txt. Datei, dieser Pfad wird eingelesen und die Werte der txt.Datei werden an einer bestimmten Spalte und Zeile im Tabellenblatt eingefügt wird.

    Grüße
     
    ilmiomondo, 21. November 2020
    #5
  6. Hallo,

    wenn ich Deine Txt-Datei auf 10.000 Zeilen erweitere (allerdings immer mit dem gleichen Inhalt), läuft das Makro sauber durch und legt die Daten korrekt ab.
    Die Variable i ist auch nicht begrenzt.
    Wenn der Code bei Dir bei Zeile 548 abbricht liegt es wahrscheinlich am Inhalt dieser Zeile in der Textdatei.
    Da kann ich jetzt so erstmal nichts zu sagen.

    Ansonsten fiel mir auf, dass bei diesem Code hier nur ein Leerzeichen durch ein Leerzeichen ersetzt wird.
    sData = Replace(sData, " ", " ") 'Leerzeichen reduzieren
    Es sollten aber zwei Leerzeichen durch ein Leerzeichen ersetzt werden.
    sData = Replace(sData, " ", " ") 'Leerzeichen reduzieren

    Hast Du das verändert?
    Falls ja, macht die ganze Schleife ja keinen Sinn mehr und das ist ja auch der Teil im Code, der für die lückenlose Ablegung der Daten verantwortlich ist.

    viele Grüße
    Karl-Heinz
     
  7. Hallo Karl-Heinz,
    erstmal Danke für deine Hilfe.
    Also die Dateien werden trotz des angezeigten Fehlers eingelesen und werden richtig dargestellt. Aber der Fehler wird jedesmal beim Einlesen angezeigt.

    Ich habe nun die vollständige in einer Zip - Datei hochgeladen.

    Die letzte Hürde wäre die Zahlen anstatt mit einem Punkt mit einem Kommata zu versehen. Welche Befehle gibt es denn dafür?

    Viele Grüße
     
    ilmiomondo, 22. November 2020
    #7
  8. VBA Code Dateien Einlesen

    Gerade für Transformationsaufgaben dieser Art wurde das ETL-Tool Power Query geschaffen, dass seit Excel 2016 immer on Board (Daten > Abfragen und Verbindungen) ist. Wobei Power Query noch viel mehr kann und sich das meiste einfach zusammenklicken lässt.

    Solltest also mal überlegen ob du es nicht mit Power Query versuchen willst, das dir auch wieder über den Weg läuft, wenn du mit Power BI zu tun hast.
     
  9. Hallo,

    wie vermutet war am Ende eine Leerzeile drin.
    Mit dem Update-Code wird das nun berücksichtigt und auch die Punkte in Kommata umgewandelt.
    Allerdings bleibt es bei dieser Methode dabei, dass alles als Text eingelesen wird.
    Falls Du mit den Zahlen auch rechnen möchtest, sollte man die als Zahlen einlesen, das geht z.B. über Einfügen aus der Zwischenablage.

    Code:

    VBA Code Dateien Einlesen [​IMG]
    [+][-]
    ____________
    viele Grüße
    Karl-Heinz
     
  10. Hallo Karl-Heinz,
    das funktioniert wunderbar. Vielen Dank dafür.
    Also wenn das schwierig ist, die Werte als Zahlen einzulesen dann belasse ich das am besten so und mache das innerhalb Excel.


    Wie bestimme ich die Range meiner txt.datei damit ich bspw. die erste Spalte nicht mit einlese?

    Viele Grüße
     
    ilmiomondo, 23. November 2020
    #10
  11. Hallo Manuel,

    mit der zweiten Sub werden die Daten als Zahlen eingelesen, allerdings über die Zwischenablage. Das ist ja nicht schwierig, lediglich bei der ersten Variante ist es schwieriger, weil jeder einzelne Werte umgewandelt werden müsste und das dauert dann halt

    Falls Du die erste Sub nutzen willst:
    Das Array fängt bei 0 an, das wäre die erste Zeile...
    Wenn Du die ersten beiden Zeilen nicht haben möchtest, kannst Du ja einfach später mit dem Ausgeben anfangen.

    Code:
    For i = 2 To UBound(vArrZL)

    viele Grüße
    Karl-Heinz
     
Thema:

VBA Code Dateien Einlesen

Die Seite wird geladen...
  1. VBA Code Dateien Einlesen - Similar Threads - VBA Code Dateien

  2. Liste mit VBA-Code erweitern/optimieren

    in Microsoft Excel Hilfe
    Liste mit VBA-Code erweitern/optimieren: Hallo, ich habe eine Planungsliste, wo mir letztes Jahr in diesem Forum schon sehr geholfen wurde mit der Programmierung von steve1da. Ich möchte gerne 2 Punkte bei diesem File erweitern: 1....
  3. Code unterscheidet manuell eingetragenes Datum von VBA-Eintrag

    in Microsoft Excel Hilfe
    Code unterscheidet manuell eingetragenes Datum von VBA-Eintrag: Hallo ihr da draußen, ich habe einen kleinen VBA-Code, mit dem ich ein Datum (17.05.2020) in Zelle J20 eintrage und darunter bis Zeile J30 immer einen Tag weiter (18.05.2020, 19.05.2020 usw.)...
  4. If Target.Address

    in Microsoft Excel Hilfe
    If Target.Address: Hallo zusammen, ich ersuche euch um Unterstützung bei folgenden Thema. Ich habe eine Tabelle, bei der über Dropdownlisten eine Auswahl getroffen werden soll und zwar in Zelle D9 und C10. Nun...
  5. Makro VBA: Kopieren aus Quelldatei nach Zieldatei über mehrere Tabellen

    in Microsoft Excel Hilfe
    Makro VBA: Kopieren aus Quelldatei nach Zieldatei über mehrere Tabellen: Hallo, leider kann ich maximal Makros aufzeichnen. Damit komme ich bei meinem jetzigen Problem allerdings nicht weiter. Problem: Monatlich soll ein Auszug von Daten aus einer Quelldatei die ich...
  6. VBA Code zum Löschen von Ondrive Dateien

    in Microsoft Excel Hilfe
    VBA Code zum Löschen von Ondrive Dateien: Ich habe eine Excel Tabelle erstellt, die beim "abschließen" mit einen VBA Code die Datei an einen anderen Speicherort speichert und die Aktuelle Datei löscht. Das ganze funktioniert auf dem...
  7. VBA-Code für Outlook

    in Microsoft Outlook Hilfe
    VBA-Code für Outlook: Hallo zusammen, Ich suche einen einfachen Code, mit dem man eine an ein Mail angehängte Datei unter einen fest vorgegebenen Pfad speichern und dem Absender gleichzeitig eine Eingangsbestätigung...
  8. VBA Code zum Anzeigen ob Datei bereits geöffnet ist

    in Microsoft Excel Hilfe
    VBA Code zum Anzeigen ob Datei bereits geöffnet ist: Hallo zusammen, ich suche Hilfe bei folgendem Problem. Ich habe per Excel einen Stardbildschirm. Nun möchte per VBA einzelne Dateien öffnen. Leider zeigt mir Excel diese Meldung nun nicht...

Users found this page by searching for:

  1. vba dateinamen einlesen