Hallo,
ich hatte da ein lauffähiges SAP Makro das machte was es sollte.
Leider hab ich das durch ein Windoof Update verloren :-(
Kurzum es hat aus vielen Tabellen über SQVI bereits vorgegebene Selektionen aus Excel in SAP selektiert und dann nach Ausführung einen Zelleninhalt ausgelesen und in die Excel Zeile eingefügt wo ausgelesen wurde.
Ich hab das mal einfacher in der MM03 dargestellt:
(bitte keinen Hinweis das ich das auch über SE16 machen kann, ich möchte es nur einfacher beschreiben)
Ich möchte über eine Produktnummer aus Excel die MM03 starten, dann das Feld MARA-NTGEW auslesen. Im Scrpit hab ich es als msgbox dargestellt
und in Excel soll es einfach in die Celle i,4 eingetragen werden. Leider gibt es mir immer die "0" aus.
Ich vermute das mein GetcellValue irgendwie falsch aufgesetzt ist:
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
Set xclapp = CreateObject("Excel.Application")
Set xclwbk = xclapp.Workbooks.Open("C:\Daten\ausschuß_neu.xls")
'Set xclwbk = xclapp.Workbooks.Open("C:\Daten\ausschuß.xls")
set xclsht = xclwbk.Sheets("Tabelle1")
for i = 2 to xclapp.ActiveCell.SpecialCells(11).Row
for j = 1 to xclapp.ActiveCell.SpecialCells(11).Column - 1
if j=1 then PRODUCT = xclsht.Cells(i,j).Value
if j=2 then Charge = xclsht.Cells(i,j).Value
if j=3 then Wert = xclsht.Cells(i,j).Value
next
'myTransaction = "xyz"
session.findById("wnd[0]/tbar[0]/okcd").text = "MM03"
session.findById("wnd[0]").sendVKey 0
on error resume next
session.findById("wnd[0]/usr/. . .").text = PRODUCT
session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").text = PRODUCT
session.findById("wnd[0]/usr/ctxtRMMG1-MATNR").caretPosition = 7
session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP09/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2161/txtMARA-NTGEW").setFocus
session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP09/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2161/txtMARA-NTGEW").caretPosition = 5
MARA-NTGEW = session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP09/ssubTABFRA1:SAPLMGMM:2004/subSUB2:SAPLMGD1:2161/txtMARA-NTGEW").getcellvalue '(i,"MARA-NTGEW")
session.findById("wnd[0]").sendVKey 4
session.findById("wnd[1]/tbar[0]/btn[12]").press
session.findById("wnd[0]").sendVKey 3
msgbox MARA-NTGEW
session.findById("wnd[0]").sendVKey 0
xclsht.Cells(i,4).Value = MARA-NTGEW
on error goto 0
next
msgbox "Alle " & cstr(xclapp.ActiveCell.SpecialCells(11).Row - 1) & " Excel Zeilen eingelesen"
Set xclwbk = Nothing
Set xclsht = Nothing
xclapp.Quit
set xclapp = Nothing
es läuft alles nur eben der Inhalt wird nicht ausgelesen. Irgendwie hab ich das schon mal geschafft, aber leider komme ich nicht mehr auf die Lösung :-(
Was mach ich falsch ?
Danke im Voraus !!!
Bearbeitet vom Benutzer
vor 6 Jahre
|
Grund: Nicht angegeben