Hallo SAP_user1,
vorausgesetzt, dass SAP GUI Scripting erlaubt ist und die 2 Hinweismeldungen unterdrückt werden (s. lokales Layout anpassen -> Optionen -> Scripting), könnte man die Angelegenheit wie folgt erledigen:
1. Die Aufzeichnung eines Musterskriptes für die Verbuchung im SAP anhand der Daten der 1. Zeile der mitgelieferten Excel-Mappe über den vorhandenen SAP-Scriptrecorder. Diese sollte beginnen und enden an der selben Stelle innerhalb einer Transaktion.
2. Das Erweitern des Musterskriptes wie folgt:
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
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
'Bis hierher wurden die ersten 14 Zeilen des Musterskriptes
'ohne Änderung übernommen.
Set xclapp = CreateObject("Excel.Application")
Set xclwbk = xclapp.Workbooks.Open("c:\tmp\myExcel.xls")
set xclsht = xclwbk.Sheets("Tabelle1")
for i = 2 to xclapp.ActiveCell.SpecialCells(11).Row
for j = 1 to xclapp.ActiveCell.SpecialCells(11).Column
if j=1 then BUKR = xclsht.Cells(i,j).Value
if j=2 then EINGANGSDATUM = xclsht.Cells(i,j).Value
if j=3 then BETRAG = xclsht.Cells(i,j).Value
. . .
next
'Hier folgt der Rest des Musterskriptes und dabei
'werden die aufgezeichneten Werte der 1. Zeile durch die
'entsprechenden Variablen ersetzt.
'z.B.
session.findById("wnd[0]/usr/. . .").text = BUKR
session.findById("wnd[0]/usr/. . .").text = EINGANGSDATUM
session.findById("wnd[0]/usr/. . .").text = BETRAG
. . .
next
msgbox "Alle " & cstr(xclapp.ActiveCell.SpecialCells(11).Row - 1) & " Excel-Zeilen wurden verarbeitet."
Set xclwbk = Nothing
Set xclsht = Nothing
xclapp.Quit
set xclapp = Nothing
3. Fertig!
Grüße,
ScriptMan