Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: EDI (Txt) Datei mit Excel einlesen

EDI (Txt) Datei mit Excel einlesen
01.08.2013 10:24:05
Dirk
Hallo @all,
habe wieder mal ein Problem und hoffe wie so oft, hier eine Lösung bzw. Lösungsansatz zubekommen. Im Moment bekomme ich per FAX eine Sendungsaufstellung ca. 30-70 Positionen, die ich dann in ein Excel Datei (Lieferschein) Sendung für Sendung eingebe und ausdrucke. Jetzt habe ich dem Absender gefragt ob es nicht möglich wäre mir eine Excel bzw. TXT-Datei zu schicken, statt dem FAX. Gesagt ....getan. Nun bekomme ich eine EDI Txt-Datei und habe gehofft, dass diese durch TAB oder ; getrennt wäre! Leider ist es nicht der Fall. Meine Frage kann Excel eine EDI Datei einlesen?
https://www.herber.de/bbs/user/86665.txt und habe noch eine Art Anleitung bekommen?!
https://www.herber.de/bbs/user/86666.xlsx
Vielen Dank
DIRK

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: EDI (Txt) Datei mit Excel einlesen
01.08.2013 11:27:06
UweD
Hallo Rolf
Ich habe die WB Spalte mit zu den Namen reingenommen...
Erfassung
 GHIJK
1  
2  So soll es seinAusgabe NameAusgabe Anzahl 
3    Hecker, Berta WB EG2 
4    Müller, Erna WB 12 
5    Hecker, Berta WB 23 
6    Schmitt, Petra WB 31 
7    Schmitt, Angela WB 41 

verbundene Zellen
G1:K1

verwendete Formeln
Zelle Formel Bereich
I3 =A3&" "&B3 
J3 =SUMMENPRODUKT((A:A&" "&B:B=I3)*1) 
I4 {=INDEX(A$3:A$99&" "&B$3:B$99;VERGLEICH(1;(ZÄHLENWENN(I$3:I3;A$3:A$99&" "&B$3:B$99)=0)*(A$3:A$99&" "&B$3:B$99<>"");0))} $I$4
{} Matrixformel mit Strg+Umschalt+Enter abschließen
Matrixformeln sind durch geschweifte Klammern {} eingeschlossen
Diese Klammern nicht eingeben!!


Tabellendarstellung in Foren Version 5.49


Gruß UweD

Anzeige
falscher Fred!!!!! owT
01.08.2013 12:00:03
Rudi

ups.. Falscher Beitrag
01.08.2013 12:11:01
UweD
Danke für den Hinweis...

AW: EDI (Txt) Datei mit Excel einlesen
01.08.2013 13:02:26
Rolf
Hallo UweD,
Danke für den Versuch. Das geht bei mir aber nur für den Moment.
Habe deine Formeln eingetragen und in den Zeilen nach unten kopiert. Wenn ich nun weitere Namen eintrage, werden diese nicht aufsummiert sondern einzeln in den Spalten I und J ausgegeben.
In deiner Formelerklärung steht auch noch ein Eintrag in "Bereich" den ich nicht gang lesne kann. Dort steht nur I4
Gruß Rolf

Anzeige
was soll der Scheiß?
01.08.2013 13:19:14
Rudi
Hallo,
warum kaperst du einen fremden Thread? Bleib gefälligst in deinem eigenen!
Wenn Uwe sich schon vertan hat, musst du das ja nicht noch verschlimmern (so wie ich jetzt auch).
Gruß
Rudi

AW: was soll der Scheiß?
01.08.2013 13:23:33
Rolf
Tut mir leid Rudi,
Wenn jemand löschen kann möge er es tun. ich kann`s nicht :-(
War keine Absicht.
Gruß Rolf

Anzeige
AW: EDI (Txt) Datei mit Excel einlesen
01.08.2013 12:10:10
Rudi
Hallo,
in ein Modul:
Option Explicit
Sub ReadEDI()
Dim sFile As String, arrFile, i As Long, arrDaten(), iCounter As Integer
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Datei wählen"
If .Show = -1 Then
sFile = .SelectedItems(1)
End If
End With
If sFile  "" Then
Open sFile For Input As #1
arrFile = Split(Input(LOF(1), 1), vbCrLf)
Close #1
ReDim arrDaten(UBound(arrFile))
For i = 0 To UBound(arrFile)
Select Case Left(arrFile(i), 2)
Case "R0"
arrDaten(i) = fncEDI(arrFile(i), _
Array(3, 5, 7, 10, 15, 23, 58), _
Array(2, 2, 3, 5, 8, 35, 30))
Case "R1"
arrDaten(i) = fncEDI(arrFile(i), _
Array(3, 7, 13, 19, 25, 31, 56, 81, 84, 114, 117, 148, 154, 165, 177, 186, 199), _
Array(4, 6, 6, 6, 6, 25, 25, 3, 30, 3, 31, 6, 11, 12, 9, 13, 3))
Case "R2"
arrDaten(i) = fncEDI(arrFile(i), _
Array(3, 6, 56, 69), _
Array(3, 50, 13, 3))
Case "R3"
arrDaten(i) = fncEDI(arrFile(i), _
Array(3, 33, 38, 41, 71, 116), _
Array(30, 5, 3, 30, 45, 11))
Case "R4"
arrDaten(i) = fncEDI(arrFile(i), _
Array(3), _
Array(75))
Case "R6"
arrDaten(i) = fncEDI(arrFile(i), _
Array(3, 4, 39, 74, 109, 144, 153, 179, 181), _
Array(1, 35, 35, 35, 35, 9, 26, 2, 3))
Case "RT"
arrDaten(i) = fncEDI(arrFile(i), _
Array(3, 6, 12), _
Array(3, 6, 11))
End Select
Next
End If
With Worksheets.Add
For i = 0 To UBound(arrDaten)
If IsArray(arrDaten(i)) Then
.Cells(i + 1, 1).Resize(, UBound(arrDaten(i)) + 1) = arrDaten(i)
End If
Next
.Columns.AutoFit
End With
End Sub
Function fncEDI(ByVal strTmp As String, arr1, arr2)
Dim arrTmp(), i As Integer
ReDim arrTmp(UBound(arr1))
For i = 0 To UBound(arr1)
arrTmp(i) = Trim(Mid(strTmp, arr1(i), arr2(i)))
Next
fncEDI = arrTmp
End Function

Gruß
Rudi

Anzeige
AW: EDI (Txt) Datei mit Excel einlesen
01.08.2013 13:23:25
Dirk
Hall Rudi,
bekomme leider immer ein Debuggen-Fehler, wenn ich diese txt-Datei einlesen will:
https://www.herber.de/bbs/user/86669.txt
Fehler der Gelb markiert wird:
With Worksheets.Add
For i = 0 To UBound(arrDaten)
If IsArray(arrDaten(i)) Then
.Cells(i + 1, 1).Resize(, UBound(arrDaten(i)) + 1) = arrDaten(i)
End If
Next
.Columns.AutoFit
End With
'
End Sub

Anzeige
AW: EDI (Txt) Datei mit Excel einlesen
01.08.2013 13:43:43
Rudi
Hallo,
ändere
   With Worksheets.Add
.Columns("A:T").NumberFormat = "@"
For i = 0 To UBound(arrDaten)
If IsArray(arrDaten(i)) Then
.Cells(i + 1, 1).Resize(, UBound(arrDaten(i)) + 1) = arrDaten(i)
End If
Next
.Columns.AutoFit
End With

Gruß
Rudi

Anzeige
AW: EDI (Txt) Datei mit Excel einlesen
01.08.2013 22:12:01
rolfwagner@t-online.de
Hallo Dirk,
ich glaube du hast den falschen Adressaten
Gruß Rolf

in wiefern? owT
02.08.2013 09:12:16
Rudi
;
Anzeige
Anzeige

Infobox / Tutorial

EDI-Dateien mit Excel einlesen


Schritt-für-Schritt-Anleitung

Um eine EDI-Datei in Excel zu öffnen, folge diesen Schritten:

  1. EDI-Datei auswählen: Klicke auf "Daten" in der oberen Menüleiste und wähle "Daten abrufen" > "Aus Datei" > "Aus Text/CSV".

  2. Datei öffnen: Wähle die EDI-Datei aus, die Du einlesen möchtest. Achte darauf, dass die Datei im richtigen Format vorliegt (.edi oder .txt).

  3. Importoptionen anpassen: Wähle die korrekten Trennzeichen aus. Wenn die EDI-Datei nicht durch Kommas oder Tabs getrennt ist, musst Du möglicherweise eine spezielle Importlogik verwenden.

  4. Daten transformieren: Nutze den Power Query-Editor, um die Daten zu bereinigen und in das gewünschte Format zu bringen. Hier kannst du auch Filter und Transformationen anwenden.

  5. Daten laden: Klicke auf "Schließen & Laden", um die Daten in ein neues Arbeitsblatt zu importieren.


Häufige Fehler und Lösungen

  • Debugging-Fehler beim Einlesen: Wenn Du beim Einlesen der Datei einen Debugging-Fehler erhältst, überprüfe, ob die Datei im richtigen Format vorliegt und ob die Zeilenumbrüche korrekt sind.

  • Daten nicht korrekt dargestellt: Stelle sicher, dass Du das richtige Zellenformat (z.B. Text) für die Spalten in Excel eingestellt hast. Ansonsten kann Excel die Daten möglicherweise nicht korrekt interpretieren.

  • Probleme mit dem VBA-Skript: Wenn das Skript nicht funktioniert, überprüfe die Zeilen und stelle sicher, dass die richtige Syntax verwendet wird. Hier ist eine häufige Anpassung, die helfen kann:

With Worksheets.Add
.Columns("A:T").NumberFormat = "@"
For i = 0 To UBound(arrDaten)
    If IsArray(arrDaten(i)) Then
        .Cells(i + 1, 1).Resize(, UBound(arrDaten(i)) + 1) = arrDaten(i)
    End If
Next
.Columns.AutoFit
End With

Alternative Methoden

  • CSV in Excel umwandeln online: Verschiedene Online-Tools bieten die Möglichkeit, EDI-Dateien in CSV-Dateien umzuwandeln, die dann leicht in Excel importiert werden können. Suche nach "csv in excel umwandeln online".

  • VBA-Skripte: Wie im Beispiel von Rudi gezeigt, kannst Du ein VBA-Skript verwenden, um die EDI-Datei direkt in Excel zu lesen. Dies ist besonders nützlich für wiederkehrende Aufgaben.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du eine EDI-Datei in Excel importieren kannst:

  1. Erstelle ein neues Excel-Dokument.
  2. Füge den folgenden VBA-Code in ein Modul ein:
Sub ReadEDI()
    Dim sFile As String, arrFile, i As Long, arrDaten(), iCounter As Integer
    ' Datei auswählen
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Title = "Datei wählen"
        If .Show = -1 Then
            sFile = .SelectedItems(1)
        End If
    End With
    ' Datei einlesen
    If sFile <> "" Then
        Open sFile For Input As #1
        arrFile = Split(Input(LOF(1), 1), vbCrLf)
        Close #1
        ReDim arrDaten(UBound(arrFile))
        ' Daten verarbeiten
        For i = 0 To UBound(arrFile)
            ' Hier Logik zum Verarbeiten der EDI-Daten einfügen
        Next
    End If
End Sub
  1. Führe das Skript aus und wähle die EDI-Datei aus, um die Daten in ein neues Arbeitsblatt zu laden.

Tipps für Profis

  • Verwende Power Query: Dieser Editor bietet leistungsstarke Funktionen, um Daten zu transformieren und zu bereinigen, bevor Du sie in Excel lädst.

  • Automatisiere den Prozess: Wenn Du regelmäßig EDI-Dateien erhältst, erwäge, ein VBA-Skript zu schreiben, das den gesamten Importprozess automatisiert.

  • Zellenformat anpassen: Achte darauf, dass Du das richtige Zellenformat für die importierten Daten verwendest, um Fehler bei der Datenanalyse zu vermeiden.


FAQ: Häufige Fragen

1. Kann Excel eine EDI-Datei direkt öffnen? Ja, Excel kann EDI-Dateien öffnen, jedoch muss das Format möglicherweise angepasst werden, um die Daten korrekt darzustellen.

2. Was tun, wenn die EDI-Datei nicht korrekt importiert wird? Überprüfe die Trennzeichen in der EDI-Datei und stelle sicher, dass Du die richtigen Importoptionen in Excel wählst. Möglicherweise musst Du auch ein VBA-Skript anpassen.

3. Gibt es Tools, um EDI-Dateien in Excel umzuwandeln? Ja, es gibt Online-Tools, die EDI-Dateien in CSV umwandeln, die dann leicht in Excel importiert werden können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige