mit folgendem im Makrorecorder aufgezeichneten Code habe ich eine txt-Datei in einen vorgegebenen Bereich eines Arbeitsblattes importiert. Die Pfadangabe bezieht dabei auf eine bestimmte Datei in einem bestimmten Ordner. Zuerst wird der Bereich für den Import gelöscht, danach die Datei geöffnet und die Werte in die Zellen eingetragen.
Sub Diff_import()
' Diff_import Makro
' Überstunden aus dem letzten Monat importieren.
Range("A4:G109").Select
Selection.ClearContents
Range("A4").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;E:\Eigene Dateien\Eigene Dokumente\Test\test.txt", _
Destination:=Range("$A$4"))
.Name = "test_import"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range("G13").Select
End SUB
Meine Frage ist nun, kann man dieses Makro so umbauen, das ein Datei öffnen Dialog erscheint, wo man die zu importierende txt-Datei auswählen kann. Ein Traum wäre es, wenn in diesem Datei öffnen Dialog der Pfad voreingestellt ist, in dem sich auch die Exelmappe befindet, aus der heraus ich ich dieses Makro starte. Ich habe etwas mit Application.GetOpenFilename.("Textdateien (*.txt), *.txt") experimentiert, aber leider ohne Erfolg. Da sich die verschiedenen txt-Dateien und die Exelmappe immer im gleichen Ordner befinden, dacht ich auch an ThisWorkbook.Path & "\" aber ich habe es nicht unter einen Hut bekommen.
Danke für Eure Mühe
Bubble