Bestimmte CSV-Dateien in Arbeitsmappe importieren
16.10.2018 11:59:11
Lukas
Ich bin VBA-Anfänger und bräuchte einmal eure Hilfe. Von einem Wegmessprogramm wird je Messung eine Reihe von CSV-Dateien erzeugt, die in einem Oberverzeichnis für die jeweilige Messung abgelegt wird. Von diesen Dateien werden stets die vier gleichen zur Auswertung herangezogen, d.h. sie sollen nacheinander in eine Arbeitsmappe auf eine Seite je CSV-Datei importiert werden. Dabei soll die Seite nach der CSV-Datei umbenannt werden, aus der ihre Daten stammen.
Meine Fragen wären daher:
1. Ist es möglich ohne irgendwelche Zusatz-Programme meinen Code so umzuschreiben, dass ich nur das Verzeichnis auswählen muss und von dort werden direkt die vier CSV-Dateien(Messdatei1, Messdatei2, Messdatei3, Messdatei4) in meine Mappe importiert? Gleichzeitig wäre es optimal, wenn diese Dateien jeweils auf einem eigenen Tabellenblatt landen, was das ganze nicht wirklich einfacher macht... Wenn ja, wie wäre das umzusetzen? (Habe bereits einige Stunden gegoogelt)
2. Wie bekomme ich es hin, dass in meiner Arbeitsmappe die Seiten nach der jeweiligen CSV-Datei benannt werden?
Danke schonmal im Voraus für jegliche Hilfen!
PS: Der Kern des Programms ist eine automatische Auswertung der Messergebnisse, die sich dann in einer zentralen Mappe befinden. Diesen Teil habe ich soweit schon fertig gestellt, ich habe auch schon ein Code-Stück zum importieren einer CSV-Datei gefunden, das soweit bei mir funktioniert:
Sub ImportCSVFile()
Dim xFileName As Variant
Dim Rg As Range
Dim xAddress As String
xFileName = Application.GetOpenFilename("CSV File (*.csv), *.csv", , "Kutools for Excel", , _
False)
If xFileName = False Then Exit Sub
On Error Resume Next
Set Rg = Application.InputBox("please select a cell to output the data", "Kutools for Excel" _
, Application.ActiveCell.Address, , , , , 8)
On Error GoTo 0
If Rg Is Nothing Then Exit Sub
xAddress = Rg.Address
With ActiveSheet.QueryTables.Add("TEXT;" & xFileName, Range(xAddress))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 936
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Anzeige