ich habe für ein kleines Projekt hier im Forum folgenden Code gefunden:
Sub einlesen()
Dim wb As Workbook, wks As Worksheet, wbAktiv As Workbook, wksAktiv As Worksheet
Dim rngZelle As Range
Dim strVerzeichnis As String
Dim Dateiname As Variant, DateinameTXT As String
Dateiname = Application.GetOpenFilename(FileFilter:="CSV (*.csv), *.csv", _
Title:="Daten")
If Dateiname = False Then Exit Sub
strVerzeichnis = VBA.CurDir
Set wbAktiv = ActiveWorkbook
Set wksAktiv = ActiveSheet
Set rngZelle = wksAktiv.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Dateiname = Dir(strVerzeichnis & Application.PathSeparator & "*.csv")
Application.ScreenUpdating = False
Do Until Dateiname = ""
'CSV-Datei temporär als txt-Datei kopieren
VBA.FileCopy Source:=Dateiname, Destination:=Left(Dateiname, Len(Dateiname) - 3) & "txt" _
DateinameTXT = Left(Dateiname, Len(Dateiname) - 3) & "txt"
'Umbenannte Kopie öffnen
Application.Workbooks.OpenText filename:=DateinameTXT, Origin:=xlWindows, _
StartRow:=2, _
DataType:=xlDelimited, ConsecutiveDelimiter:=False, _
Tab:=False, _
Semicolon:=True, _
Comma:=False, _
Space:=False, _
Other:=False
Set wb = AktiveSheet
'Daten Kopieren
wb.Sheets(1).UsedRange.Copy
rngZelle.PasteSpecial Paste:=xlPasteValues
'Nächste Einfügezelle setzen
Set rngZelle = rngZelle.Offset(wb.Sheets(1).UsedRange.Rows.Count, 0)
wb.Close savechanges:=False
'TXT-Kopie wieder löschen
VBA.Kill (DateinameTXT)
Dateiname = Dir
Loop
Application.ScreenUpdating = True
End Sub
Dieser funktioniert soweit wunderbar, es fehlen allerdings noch ein paar Kleinigkeiten, die angepasst werden müssten.
1. Beim öffnen des Auswahlfenster möchte ich direkt in einen bestimmten Ordner verweisen (C:\Auswertung\Aktuell).
2. Die Daten aus der .csv Datei sollen in ein anderes Tabellenblatt geschrieben werden.
Meinen Button für das Einlesen der Daten befindet sich im Tabellenblatt "Einlesen", die Daten sollen aber im zweiten Tabellenbaltt "Auswertung" auftauchen.
Könnte mir diesbezüglich bitte jmd. helfen?
Vielen Dank schonmal!