Datei mit variablem Namen einlesen und als Excel speichern
Hallo Forum,
Ich habe ein Problem.
-Es muss eine Datei (CLV) eingelesen werden. Öffne ich diese in Excel, so kommt der Textkonvertierungs-Assistent (Getrennt, Tabstopp + Semikolon müssen ausgewählt werden)
-Diese CLV hat immer diese Syntax: CLV_KW_Jahr. Es gibt also jede Woche eine Datei. Problem könnte nur sein, dass wenn jemand vergisst, 3 Wochen einzulesen-> dann ist ein Rückstand da.
-Man bräuchte also eine Eingabe, welche mitzählt und diesen Zähler speichert, sodass diese CLV mit der folgenden KW und Jahr eingelesen wird (Sprich jedes mal wenn man das Makro öffnet, öffnet er die CLV, macht die Textkonvertierung, speichert und setzt den Zähler für die KW um 1 hoch. Am besten wäre es, wenn der Jahresumsprung von 2016 auf 2017 und somit 52/53 auf 1 auch mit verbunden wird)
Makro-Aufzeichnung spuckte das hier aus:
mfG Stefan
Ich habe ein Problem.
-Es muss eine Datei (CLV) eingelesen werden. Öffne ich diese in Excel, so kommt der Textkonvertierungs-Assistent (Getrennt, Tabstopp + Semikolon müssen ausgewählt werden)
-Diese CLV hat immer diese Syntax: CLV_KW_Jahr. Es gibt also jede Woche eine Datei. Problem könnte nur sein, dass wenn jemand vergisst, 3 Wochen einzulesen-> dann ist ein Rückstand da.
-Man bräuchte also eine Eingabe, welche mitzählt und diesen Zähler speichert, sodass diese CLV mit der folgenden KW und Jahr eingelesen wird (Sprich jedes mal wenn man das Makro öffnet, öffnet er die CLV, macht die Textkonvertierung, speichert und setzt den Zähler für die KW um 1 hoch. Am besten wäre es, wenn der Jahresumsprung von 2016 auf 2017 und somit 52/53 auf 1 auch mit verbunden wird)
Makro-Aufzeichnung spuckte das hier aus:
Sub Makro1()
ChDir _
"O:\..."
Workbooks.OpenText Filename:= _
"O:\...\CLV_32_2016" _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True _
, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1) _
, Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), TrailingMinusNumbers _
:=True
ActiveWorkbook.SaveAs Filename:= _
"O:\...\CLV_32_2016.xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Application.Quit
End Sub
mfG Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 312245
Url: https://administrator.de/contentid/312245
Ausgedruckt am: 23.11.2024 um 04:11 Uhr
1 Kommentar
Sub CreateFiles()
Const strPathSource = "O:\csv"
Const strPathTarget = "O:\xlsx"
Application.DisplayAlerts = False
Set fso = CreateObject("Scripting.FileSystemObject")
for each file in fso.GetFolder(strPathSource).Files
strPathTargetFile = strPathTarget & "\" & fso.GetBasename(file.Name) & "\.xlsx"
if LCase(fso.GetExtensionName(file.Name)) = "csv" and not fso.FileExists(strPathTargetFile) then
Workbooks.OpenText Filename:=file.Path _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True _
, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1) _
, Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs Filename:=strPathTargetFile
end if
Next
Application.DisplayAlerts = True
End Sub