Hallo an Alle, ich hab ein kleines Problem und würde mich freuen, wenn mir hier Jemand behilflich sein kann.
Ich möchte in eine bestehende Excel Datei eine CSV-Datei auf ein ganz betimmtes Tabellenblatt mit dem Tabellennamen "Import" importieren. In der CSV-Datei sind die einzelnen Zellen durch Semikolon getrennt und zusätzlich mit einem Texterkennungszeichen (Anführungszeichen) versehen. Nach dem Import soll mit den importierten Daten auf einem anderen Arbeitsblatt gerechnet werden. Die Verknüpfungen sind bereits da, ich habe eine CSV-Datei manuell importiert und alle Verknüpfungen erstellt. Es ist also auch noch erforderlich, dass die alten Daten zuvor gelöscht werden, bzw. dass die alten Daten von der neuen CSV-Datei einfach überschrieben werden, damit die Verknüpfungen nicht verloren gehen.
Ich habe hier schonmal einen Ansatz dazu, der aber leider nicht funktioniert. Das Auswählen der CSV-Datei funktioniert bereits, aber dann stürzt das Programm mit der Fehlermeldung "Einlesen hinter Dateiende" ab. Ich kann den Fehler leider nicht korrigieren, kann mir Jemand behilflich sein???
Hier der Code:
Ich möchte in eine bestehende Excel Datei eine CSV-Datei auf ein ganz betimmtes Tabellenblatt mit dem Tabellennamen "Import" importieren. In der CSV-Datei sind die einzelnen Zellen durch Semikolon getrennt und zusätzlich mit einem Texterkennungszeichen (Anführungszeichen) versehen. Nach dem Import soll mit den importierten Daten auf einem anderen Arbeitsblatt gerechnet werden. Die Verknüpfungen sind bereits da, ich habe eine CSV-Datei manuell importiert und alle Verknüpfungen erstellt. Es ist also auch noch erforderlich, dass die alten Daten zuvor gelöscht werden, bzw. dass die alten Daten von der neuen CSV-Datei einfach überschrieben werden, damit die Verknüpfungen nicht verloren gehen.
Ich habe hier schonmal einen Ansatz dazu, der aber leider nicht funktioniert. Das Auswählen der CSV-Datei funktioniert bereits, aber dann stürzt das Programm mit der Fehlermeldung "Einlesen hinter Dateiende" ab. Ich kann den Fehler leider nicht korrigieren, kann mir Jemand behilflich sein???
Hier der Code:
Quellcode
- Sub Datei_Importieren()
- Dim strFileName As String, arrDaten, arrTmp, lngR As Long, lngLast As Long
- Const cstrDelim As String = ";" 'Trennzeichen
- With Application.FileDialog(msoFileDialogFilePicker)
- .AllowMultiSelect = False
- .Title = "Datei wählen"
- .InitialFileName = "d:\Pfad\*.csv" 'Pfad anpassen
- .Filters.Add "CSV-Dateien", "*.csv", 1
- If .Show = -1 Then
- strFileName = .SelectedItems(1)
- End If
- End With
- If strFileName <> "" Then
- Application.ScreenUpdating = False
- Open strFileName For Input As #1
- arrDaten = Split(Input(LOF(1), 1), vbCrLf)
- Close #1
- For lngR = 0 To UBound(arrDaten)
- arrTmp = Split(arrDaten(lngR), cstrDelim)
- If UBound(arrTmp) > -1 Then
- With ActiveSheet
- lngLast = .Cells(Rows.Count, 1).End(xlUp).Row + 1
- lngLast = Application.Max(lngLast, 10)
- .Cells(lngLast, 1).Resize(, UBound(arrTmp) + 1) _
- = Application.Transpose(Application.Transpose(arrTmp))
- End With
- End If
- Next lngR
- End If
- End Sub
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Zacki“ ()