Hallo SzPGuiXT,
Zitat:
"Leider kann ich mit dem Recorder nur das .xls Dateiformat abspeichern."
Wie gesagt habe ich keinen Zugriff auf IW39 aber ich vermute, dass sich die Liste dort nicht mal manuell im xlsx-Format abspeichern lässt. Das hat nichts mit dem Recorder zu tun und daher müsste u.U. ein Workaround her.
Dieser könnte wie folgt aussehen:
. . .
// IH-Aufträge anzeigen: Liste Aufträge
Screen SAPLSFES.0200
Set F[Verzeichnis] "C:\SAP_Export"
Set F[Dateiname] "Ersatzteile.xls"
Enter "/11" // Ersetzen
start "&F[Verzeichnis]\xls2xlsx.vbs" parameters="&F[Verzeichnis] &F[Dateiname]"
xls2xlsx.vbs:
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
set session = application.ActiveSession
PFAD = wscript.arguments(0) & "\" & wscript.arguments(1)
'msgbox PFAD
on error resume next
Set xclApp = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Err.Clear
Set xclApp = CreateObject("Excel.Application")
End If
xclapp.ScreenUpdating = true
xclapp.Visible = true
xclapp.DisplayAlerts = false
Set xclwbk = xclApp.Workbooks.Open(wscript.arguments(0) & "\xls2xlsx.xlsm")
on error goto 0
xclapp.Run "xls2xlsx.xlsm!xls2xlsx", PFAD
if xclApp.Workbooks.count = 1 then
xclwbk.close
set xclwbk = nothing
xclapp.Quit
set xclapp = nothing
else
xclwbk.close
set xclwbk = nothing
xclapp.DisplayAlerts = true
end if
Makro xls2xlsx in xls2xlsx.xlsm und Modul1:
Sub xls2xlsx(ByVal PFAD As String)
Workbooks.Open Filename:=PFAD
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Rows("2:2").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveWorkbook.SaveAs Filename:=PFAD & "x", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close
Kill PFAD
End Sub
Fazit:
Das Ergebnis ist eine XLSX-Mappe, in der die 1. Spalte und die 1. und 3. Zeile gelöscht worden sind.
Viel Spaß beim Testen!
Grüße,
ScriptMan