Ich wäre wieder einmal froh um eure immerzu hilfreichen Inputs !
Ich habe folgendes Makro zum Erstellen eines CSV-Files (die Daten stehen exklusiv in einer eignen Tabelle ab Zelle A1):
----------------------------------------------
Sub CSVICFY()
' CSVICFY Makro
' Erstellt CSV für IC FullYear zum Upload in SAP FIM
' Tastenkombination: Strg+f
Sheets("Upload IC FY").Select
Range("A1").Select
Dim SrcRg As Range
Dim CurrRow As Range
Dim CurrCell As Range
Dim CurrTextStr As String
Dim ListSep As String
Dim FName As Variant
FName = Application.GetSaveAsFilename("Upload_SAPFIM_ICFY_BGT14-16_201309xx_1", "CSV File (*. _
csv), *.csv")
ListSep = Application.International(xlListSeparator)
If Selection.Cells.Count > 1 Then
Set SrcRg = Selection
Else
Set SrcRg = ActiveSheet.UsedRange
End If
Open FName For Output As #1
For Each CurrRow In SrcRg.Rows
CurrTextStr = ìî
For Each CurrCell In CurrRow.Cells
CurrTextStr = CurrTextStr & CurrCell.Value & ListSep
Next
While Right(CurrTextStr, 1) = ListSep
CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1)
Wend
Print #1, CurrTextStr
Next
Close #1
End Sub
-----------------------------------------
Einziger Wehrmutstropfen hier: nach dem Speichern muss ich das Makro jeweils mit debuggen schliessen... Damit kann (muss) ich momentan leben.
Nun habe ich die Ausganglage, dass die Werte nicht mehr exklusiv in einer eigenen Tabelle, sondern sich die Tabelle "Uploadfile" mit anderen Listen teilen müssen. Die für den Upload relevanten Daten sind in den Spalten AB:AJ.
Manuell würde ich jetzt diese Tabelle kopieren, die Werte fixieren, Spalten A:AA löschen und dann speichern als CSV.
Hat jemand eine Idee, wie ich das elegant über ein Makro machen kann?
Könnte ich dabei evtl. einen Filenamen vorschlagen, der sich zusammensetzt aus z.B. =verketten("Upload_DWH_";Settings!A1;"_";Settings!A5;Settings!A6;"_";Settings!A7), wobei A1 die Gesellschaftsnummer, A5 das Jahr, A6 den Rapportierungsmonat und A7 die aktuelle Zeit =(jetzt) bringen würde.
Super wäre da natürlich, wenn das Makro nach dem Speicher nicht mit debuggen beendet werden müsste. -> Der Speicherort wird im alten Makro nur vorgeschlagen, darum wird sich das Makro wohl nicht selber beenden können. Tragisch wäre aus meiner Sicht nicht, wenn das neue Makro die Datei dann halt einfach auf dem Desktop ablegt. Aufgrund des Dateinamens wird der User die Datei dann finden können.
Schon jetzt herzlichen Dank.
Viele Grüsse
Beat