Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte aus SAP in Excel kopieren

Werte aus SAP in Excel kopieren
07.03.2019 10:53:38
Christian
Moin alle zusammen,
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachtrag
07.03.2019 14:37:04
Christian
Meon Problem liegt darin, dass ich nicht weiß wie ich ein Feld in SAP ansprechen soll um dann denn Wert in eine Excel Zelle zu übertragen.
Das schwarz markierte ist mein Code, der restliche wird mir vom Script Recorder vorgegeben.

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").Copy Destination:=wsZiel.Range("B" & lngAktZeile).Value

AW: Nachtrag
07.03.2019 14:43:01
Werner
Hallo Christian,
verstehe ich dich richtig, du hast den Wert aus der SAP-Anwendung bereits in deiner Variablen Delivery bzw. Item?
so würdest du dir dann doch die Variable mit dem Wert aus deiner Excel-Zelle überschreiben
Delivery = .Range("B" & lngAktZeile).Value

Wenn der Wert aus der Variablen Delivery in die Excel-Zelle soll, dann genau andersrum
.Range("B" & lngAktZeile).Value = Delivery
Gruß Werner
Anzeige
First Shoot
07.03.2019 14:56:51
Christian
Mein erster Versuch hat an dieser Stelle keinen Sinn Ergeben. Welche Meinung hast du zu diesem Versuch (Schwarz markierte)?

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 = 16 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
'If IsObject(WScript) Then
'   WScript.ConnectObject session, "on"
'   WScript.ConnectObject Application, "on"
'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").Copy Destination:=wsZiel.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.Copy Destination:=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

Anzeige

20 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige