bitte nicht von der Länge des Codes verschrecken lassen. Es geht mir im Folgenden um die schwarz markierten Stellen. Ich möchte zwei Felder aus SAP mit einer For-Schleife in meine Excel Mappe kopieren. Denn umgekehrten Weg habe ich bereits geschafft, also Werte aus Excel in SAP zu kopieren.
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7790/subUSER0001:SAPLXQQM:2000/txtZSD_CLAIM-ZZRFR").Text = Delivery
Delivery = .Range("B" & lngAktZeile).Value
In diesem Abschnitt lasse ich denn Wert aus dem Feld in SAP in eine Variable übertragen um Sie danach in meine Excel Mappe zu kopieren. Leider funktioniert es nicht. Habt Ihr eine Idee?
Beste Grüße
Christian
Option Explicit
Sub Makro()
Dim Application As Object
Dim Connection As Object
Dim session As Object
Dim SapGuiAuto As Object
Dim langID As Long
Dim wsList As Worksheet
Dim wsZiel As Worksheet
Dim wsIPO As Worksheet
Dim lngLZeileListeQuelle As Long
Dim lngLZeileListeZiel As Long
Dim lngAktZeile As Long
Dim wbName As String
Dim wsName As String
Dim ZeileMax As Long
Dim Number As String
Dim Delivery, Item As Integer
Set SapGuiAuto = GetObject("SAPGUI")
Set Application = SapGuiAuto.GetScriptingEngine
Set Connection = Application.Children(0)
Set session = Connection.Children(0)
Set wsZiel = tblClaims
With tblClaims
ZeileMax = .Range("A65536").End(xlUp).Row
For lngAktZeile = 1 To ZeileMax
Number = .Range("A" & lngAktZeile).Value
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
session.findById("wnd[0]/tbar[0]/okcd").Text = "clm2"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtRIWO00-QMNUM").Text = Number
session.findById("wnd[0]/usr/ctxtRIWO00-QMNUM").caretPosition = 9
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/ _
subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7790/subUSER0001:SAPLXQQM:2000/txtZSD_CLAIM-ZZRFR").Text = Delivery
Delivery = .Range("B" & lngAktZeile).Value
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/ _
subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7790/subUSER0001:SAPLXQQM:2000/txtZSD_CLAIM-ZZFLSTD").Text = Item
Item = wsZiel.Range("C" & lngAktZeile).Value
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/ _
subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7790/subUSER0001:SAPLXQQM:2000/txtZSD_CLAIM-ZZFLSTD").SetFocus
session.findById("wnd[0]/usr/tabsTAB_GROUP_10/tabp10\TAB01/ssubSUB_GROUP_10:SAPLIQS0:7235/ _
subCUSTOM_SCREEN:SAPLIQS0:7212/subSUBSCREEN_2:SAPLIQS0:7790/subUSER0001:SAPLXQQM:2000/txtZSD_CLAIM-ZZFLSTD").caretPosition = 2
session.findById("wnd[0]/tbar[0]/btn[3]").press
Next lngAktZeile
End With
End Sub