Hallo,
in eine Tabelle füge ich per Makro eine *.csv Datei ein. In der csv Datei befinden sich z.B. 3 Datensätze.
Diese werden auch einwandfrei eingefügt. Jetzt möchte ich aber, dass die Datensätze nicht am Anfang der Tabelle, sondern, dass sie ab Spalte F
eingefügt werden sollen(A-F sollen leerstehen).
Hier das Makro, was ich benutze:
Sub Datei_Importieren()
Dim strFileName As String, arrDaten, arrTmp, lngR As Long, lngLast As Long, intLastS As Long
Const cstrDelim As String = ";" 'Trennzeichen
Call Tabelle_Leeren 'Tabelle leeren
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Datei wählen"
.InitialFileName = "c:\test\*.csv" 'Pfad anpassen
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 = 1 To UBound(arrDaten)
arrTmp = Split(arrDaten(lngR), cstrDelim)
If UBound(arrTmp) > -1 Then
With Tabelle4
' intLastS = Cells(1, Columns.Count).End(xlToLeft).Column + 1
lngLast = .Cells(Rows.Count, 1).End(xlUp).Row + 1
lngLast = Application.Max(lngLast, 1)
.Cells(lngLast, 1).Resize(, UBound(arrTmp) + 1) _
= Application.Transpose(Application.Transpose(arrTmp))
End With
End If
Next lngR
End If
End Sub
Die Zeile:
lngLast = Application.Max(lngLast, 1)
.Cells(lngLast, 1).Resize(, UBound(arrTmp) + 1)
habe ich so verändert:
lngLast = Application.Max(lngLast, 1)
.Cells(lngLast, 6).Resize(, UBound(arrTmp) + 1)
Jedoch wird nur der letzte Datensatz immer ab Spalte F eingefügt, sonst nichts.
Weiß jemand, woran das liegen könnte?
MfG, Animus
|