Ich möchte Daten aus einer CSV Datei in eine excel Datei kopieren. Die Anzahl der Zeilen ist dynamisch und soll über eine Variable festgestellt werden, dann sollen die Daten an das untere Ende der Datentabelle eingefügt werden.
1. Muss in der Datentabelle voher die bereits vorhanden Zeilen gezahlt werden oder kann man dies umgehen in dem man festgelegt, die Daten soll in die erste Zeile die frei ist kopiert werden ?
2. Hier der Code für den ersten Versuch :
Sub datenkopieren()
' datenkopieren Makro
Dim zeile As Integer
Dim datXLSB As String
Dim datXLS As String
Dim datCSV As String
Dim heute As Date
Dim wbXLSB As Workbook
Dim wsXLSB As Worksheet
Dim wbCSV As Workbook
Dim wsCSV As Worksheet
Dim pfad As String
Dim zeile1 As Integer
heute = Date
datCSV = Format$(heute, "dd.mm.yyyy") & "_tagesbestellung.csv"
datXLSB = "Arbeitsdatei2017.xlsx"
pfad = "C:\Users\Mike\Documents\Arbeit\"
Set wbXLSB = Workbooks(datXLSB)
Set wsXLSB = wbXLSB.Worksheets("Datentabelle")
' 1. Arbeitsmappe datCSV öffnen
If Dir(pfad & datCSV) = "" Then
MsgBox Prompt:="Datei """ & pfad & datCSV & """ existiert nicht!", _
Buttons:=vbCritical
Exit Sub
End If
On Error Resume Next
Workbooks(datXLS).Close SaveChanges:=False
On Error GoTo 0
Set wbCSV = Workbooks.Open(Filename:=pfad & datCSV)
Set wsCSV = wbCSV.Worksheets(1)
zeile = wsXLSB.Cells(Rows.Count, 1).End(xlUp).Row
zeile1 = wsCSV.Cells(Rows.Count, 1).End(xlUp).Row
With wsCSV
.Range("A2:M2" & zeile1).Copy
wbXLSB.Activate
.AutoFill Destination:=wsXLSB.Range("A2:A" & zeile)
ThisWorkbook.Activate
End With
End Sub
Danke schonmal im VorausGruß Mike