auszuwählen. Ich führe ein Makro aus, das automatisch CSV-Dateien aufnimmt und sie in bestimmte Arbeitsblätter in meiner Arbeitsmappe importiert. Ich möchte jedoch eine größere Flexibilität hinzufügen, indem der Benutzer die Dateien zum Importieren auswählt, anstatt dass der Makro automatisch die CSV-Dateien abgreift, da sich die Benennung ebenso wie das Verzeichnis ändern kann. Ich bin neu bei VBA und habe versucht, MsoFileDialogType und GetOpenFilename besser zu verstehen, aber ich habe Schwierigkeiten, das Konzept/die Implementierung in meinen Code zu fassen.Makro, um den Benutzer aufzufordern, CSV-Dateien für den Import in ein vorhandenes Blatt in der Arbeitsmappe
Was ich letztlich möchte, ist für den Benutzer auf eine Schaltfläche auf der Arbeitsmappe Front-End klicken. Sie werden mit einer Nachricht aufgefordert, die erste CSV-Datei für den Import auszuwählen. Diese CSV-Datei wird in ein vorbenanntes Arbeitsblatt in der Arbeitsmappe temp1 importiert. Da die Datendateien jedoch paarweise vorliegen, möchte ich, dass der Benutzer die nächste CSV-Datei nach der ersten in temp2 auswählen kann.
Was ich habe, zur Zeit ist:
Worksheets.Add
ActiveSheet.Name = "temp1"
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;MAC Directory path here" _
, Destination:=Range("A1"))
.Name = "temp 1 03.02.12"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlMacintosh
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1)
.Refresh BackgroundQuery:=False
.UseListObject = False
End With
ActiveSheet.Move after:=Worksheets(Worksheets.Count)
Danke.
Hallo Remou, habe ich versucht, den Code der Umsetzung aber diese Fehler festgestellt: „Benutzerdefinierte Typ nicht definiert“ und markiert diese Zeile -> Dim DlgOpen Als File – VMO
Welche Version von Excel verwenden Sie? Können Sie der Microsoft Office x.x-Objektbibliothek einen Verweis hinzufügen? – Fionnuala
Hallo Remou, ich benutze Mac Office 2011. Ich ging unter Extras -> Referenzen, und stellte sicher, dass Visual Basic für Applikationen, Microsoft Excel 14.0 Objektbibliothek und Microsoft Office 14.0 Objektbibliothek überprüft wurden. – VMO