Mittels Excel (Makro) SAP starten

Hallo,

das Problem besteht darin mittels eines Makros in Excel SAP zu starten und gleichzeitig die entsprechenden Konten mitzugeben um anschließend die Daten nach Excel zu importieren.

Mit dieser Funktion

Sub LiesSAPTabelle()
Dim fns As Object, conn As Object
Set fns = CreateObject(„SAP.Functions“)
Set conn = fns.Connection
With conn
.messageServer = „…“
.Client = „…“
.Destination = „…“
.Language = „DE“
.system = „…“
.systemid = „…“
.systemnumber = 1
.user = „…“
.password = „…“
.usesaplogonini = False
End With
If conn.Logon(0, True) True Then
MsgBox „Cannot logon!.“
Exit Sub
End If

kann man zwar SAP aufrufen jedoch weiß ich nicht wie ich SAP jetzt sagen soll welche Konten zu verwenden sind. Oder kann man vielleicht eine zuvor abgespeicherte SAP-Abfrage (Favorit) aufrufen (in der sind nämlich schon die Konten vorbelegt)?

Über einen Makro-Code würde ich mich sehr freuen.

Hallo Vince!

Mit dieser Funktion

kann man zwar SAP aufrufen jedoch weiß ich nicht wie ich SAP
jetzt sagen soll welche Konten zu verwenden sind.

Oh je!
Das ist nicht ganz so einfach. Kann mich dunkel erinnern, dass man ein wenig ABAP programmieren muss. Und zwar muss man ein RFC-fähiges Funktionsbaustein generieren und programmieren, dass die Selektionsdaten von deinem Macro nutzt um Daten aus bestimmten Tabellen auszuwählen.

Hinzu kommen noch Berechtigungsspielchen mit Admin & Co.

Also einfach ein Macro schreiben wird nicht reichen.

Grüsse
catmad

Hallo,

grundsätzlich kann man alle User-Aktionen die per SAPGUI möglich sind, auch per Befehl absetzen.

Schau Dir dazu am Besten die Beispiele auf der SAPGUI-CD (Developer Tools, Automation-Package) an.

EIn kleines VB-Codeschnipsel macht das vielleicht klarer:

Sap.OKCode = „/nMIGO_GR“
bOK = Sap.SendEvent
OKCheck bOK, „Error in sending default key“
ScreenCheck „SAPLMIGO“, „0001“

iCtrl = Sap.FindByField(„GOHEAD-LFSNR“, 0, SapEdit)
bOK = Sap.SetControlValue(iCtrl, „4711“)
OKCheck bOK, „Error in setting text value“

bOK = Sap.SetCursorByControl(iCtrl)
OKCheck bOK, „Error in setting cursor position“

bOK = Sap.SendEvent
OKCheck bOK, „Error in sending default key“
ScreenCheck „SAPLMIGO“, „0001“

Ist zwar kein fertiges Excel-Makro, aber hilft vielleicht trotzdem weiter.

Gruß

Achim Schenk
www.identwerk.de
Bad Rappenau