Hallo liebes Forumteam.
Ich habe mir einen VBA Code geschrieben.
Was er bis jetzt kann:
- Er importiert mir die Werte aus einer Textdatei direkt in die Spalten F - (so lange er halt ist)
- Gibt mir den Dateinamen in der Tabelle aus
- Öffnet direkt ein speichern unter Fenster und verwendet als Endung xlsm.
Nun hätt ich gerne noch ein paar Extras, die ich einfach nicht hinbekomme:
- Wenn ich nach dem Import nochmal auf die Schaltfläche gehe überschreibt er mir leider nicht die alten daten sondern verschiebt sie nur, aber er ändert zumindest den Dateinamen
- Ich würde gerne noch einen Pfad beim öffnen hinzufügen, dass ich mich nicht immer von C bis zu meinem Ordner durchwühlen muss
- Wenn ich jetzt speichere sollte er den namen in a3 verwenden ( mit formeln habe ich mir zusammengebastelt, dass er ihn aus dem pfas extrahiert). Leider schneidet er mir immer vorne einen Teil ab. Je nachdem ob ich A1 oder a3 eingebe ist das unterschiedlich viel.
Vielen Dank für eure Hilfe. Ich hab nämlich noch nie mit VBA gearbeitet.
Sub oeffnen()
Dim myFileAddress As Variant
Sheets("Tabelle1").Select
myfileadress = Application.GetOpenFilename("Textdateien (*.txt), *.txt, alle (*.*), *.*")
If myfileadress = "Falsch" Then Exit Sub
On Error Resume Next
If Not ActiveSheet.QueryTables(myfileadress).Name = myfileadress Then
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & myfileadress, Destination:=Range("F1"))
.Name = myfileadress
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.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)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Else
With ActiveSheet.QueryTables(myfileadress)
.Name = myfileadress
.Connection = "TEXT;" & myfileadress
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.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)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End If
Range("A1") = CStr(myfileadress)
Sheets(myfileadress).Select
Range("A60").Select
Application.SendKeys Range("A3").Value
Application.Dialogs(xlDialogSaveAs).Show , 52
End Sub
|