Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
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

Excel Makro (SAP Scripting API)

Excel Makro (SAP Scripting API)
22.05.2022 20:05:03
Rob98
Hallo zusammen,
ich habe eine Fehlermeldung in meiner programmierten Makro mit SAP GUI Scripting und vielleicht hat jemand eine Idee wie ich es beheben kann.
Aktuell geht die erstellte Excel Makro in ein bestimmte Transaktion im SAP System und klickt auf den Button "Tabellenkalkulation". Daraufhin öffnet sich Excel und die Daten aus dem SAP System werden in der Excel Datei dargestellt und abgespeichert. Jedoch lass ich die Makro durchlaufen, öffnet sich nicht automatisch die Excel Datei sondern ich müsste die Datei mit dem Befehl open erneut öffnen. Das Problem ist nur dass ich die Daten aus der gedownloadeten Excel Datei in meine Hauptdatei kopiere und anschließend mit den Kill Befehl lösche. Wenn die Makro ohne Fehler durchgelaufen ist, möchte im Anschluss Excel die gedownloadete Excel Datei öffnen welche es aber gar nicht mehr gibt. Hat jemand ähnliche gehabt bzw. eine Idee das Problem zu lösen?
Danke für alle Ideen.

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Makro (SAP Scripting API)
22.05.2022 20:39:08
onur
Liegt bestimmt an Zeile 7 deines Makros.
AW: Excel Makro (SAP Scripting API)
22.05.2022 20:40:06
Felix
Hallo rob, ich habe leider keine Erfahrung mit SAP, aber wie wäre es die Daten in ein Array laufen zu lassen (zb über eine Schleife) und dann kannst du dir damit verschiedene Dateien generieren, bzw in verschiedensten Formen wieder in Excel zurücklesen?
VG
Felix
AW: Excel Makro (SAP Scripting API)
22.05.2022 20:42:09
Rob98
Hey Felix, leider benötige ich den Excel Download. Das geht viel schneller wie ein zu verwenden Array. Ich versteh nur nicht warum die Makro das öffnen der Datei durch SAP verhindert.
AW: Excel Makro (SAP Scripting API)
22.05.2022 20:45:40
Felix
Hallo rob, kannst du denn den Makro-Code hier posten? Das würde es deutlich einfacher machen um beim Verständnis auszuhelfen.
Gruß Felix
Anzeige
AW: Excel Makro (SAP Scripting API)
22.05.2022 20:48:39
Rob98
Hey hier der vereinfachte Makro Code ohen die Löschfunktion und das extra öffnen der Datei:
Erst nach der Nachrichtenbox wird die Excel Datei automatisch von SAP geöffnet während die Makro läuft wird es irgendwie blockiert.

Sub test()
If Not IsObject(SAPApplication) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set SAPApplication = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(sapConnection) Then
Set sapConnection = SAPApplication.Children(0)
End If
If Not IsObject(SAPsession) Then
Set session = sapConnection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject SAPsession, "on"
WScript.ConnectObject Application, "on"
End If
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "kob1"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/tbar[1]/btn[43]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/ctxtDY_PATH").Text = "C:\SAP\scc20"
session.findById("wnd[1]/usr/ctxtDY_PATH").SetFocus
session.findById("wnd[1]/usr/ctxtDY_PATH").caretPosition = 12
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/tbar[0]/okcd").Text = "/n"
session.findById("wnd[0]").sendVKey 0
MsgBox ("test")
End Sub

Anzeige
AW: Excel Makro (SAP Scripting API)
22.05.2022 20:53:47
onur
Wo ist denn das Makro mit "Das Problem ist nur dass ich die Daten aus der gedownloadeten Excel Datei in meine Hauptdatei kopiere und anschließend mit den Kill Befehl lösche" ?
Was meinst du überhaupt mit "gedownloadet" ? Du meinst doch "exportiert" - oder ?
AW: Excel Makro (SAP Scripting API)
22.05.2022 21:00:33
Rob98
Nabend,
ja genau die Daten aus SAP werden in Excel exportiert und abgespeichert. Diese Datei wird automatisch durch SAP geöffnet, aber leider durch die Makro behindert. Wie in der zuvor angehängten Testmakro wird die Datei erst nach bestätigen der Messagebox bzw. beenden der Makro geöffnet. Die Datei sollte aber während der Laufzeit der Makro geöffnet werden.
Anzeige
AW: Excel Makro (SAP Scripting API)
22.05.2022 21:01:51
onur
Wie gesagt, WO ist das andere Makro?
AW: Excel Makro (SAP Scripting API)
22.05.2022 21:11:49
Rob98
Hier die vollständige Makro:
Option Explicit
Public SapGuiAuto, WScript, msgcol
Public objGui As GuiApplication
Public objConn As GuiConnection
Public session As GuiSession

Sub test()
Application.DisplayAlerts = False
Workbooks("xyz").Worksheets("Einstellungen").Range("O4:O40").Copy
Set SapGuiAuto = GetObject("SAPGUI")
Set objGui = SapGuiAuto.GetScriptingEngine
Set objConn = objGui.Children(0)
Set session = objConn.Children(0)
session.FindById("wnd[0]").Maximize
session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nksb1"
session.FindById("wnd[0]").SendVKey 0
session.FindById("wnd[0]/tbar[1]/btn[8]").Press
session.FindById("wnd[0]/tbar[1]/btn[43]").Press
session.FindById("wnd[1]/usr/cmbG_LISTBOX").SetFocus
session.FindById("wnd[1]/tbar[0]/btn[0]").Press
session.FindById("wnd[1]/usr/ctxtDY_PATH").Text = "hier der Dateipfad"
session.FindById("wnd[1]/usr/ctxtDY_FILENAME").Text = "export.XLSX"
session.FindById("wnd[0]/tbar[0]/okcd").Text = "/n"
session.FindById("wnd[0]").SendVKey 0
Workbooks.Open ("hier der Dateipfad")
Workbooks("export").Worksheets("Sheet1").Range("A1:O10000").Copy
Workbooks("xyz").Activate
Workbooks("xyz").Worksheets("xx").Select
Workbooks("xyz").Worksheets("xx").Range("A1").PasteSpecial Paste:=xlPasteValues
'Datei schließen
Workbooks("export").Close savechanges:=False
'Löschen der erstellen Excel Datei
Kill "hier der Dateipfad"
End Sub

Anzeige
AW: Excel Makro (SAP Scripting API)
22.05.2022 21:47:42
onur
Was ich nicht verstehe: Wieso löschst du die Datei, wenn du sie noch brauchst?
AW: Excel Makro (SAP Scripting API)
22.05.2022 21:53:30
Rob98
Ich lösche die Datei weil ich die Daten in die Hauptdatei kopiert habe und ich den Speicher nicht vollmüllen will. Brauchen tu ich sie ja dann nicht mehr.
AW: Excel Makro (SAP Scripting API)
22.05.2022 21:54:46
onur
Häääh?
Hast DU nicht geschrieben: "möchte im Anschluss Excel die gedownloadete Excel Datei öffnen welche es aber gar nicht mehr gibt."
AW: Excel Makro (SAP Scripting API)
22.05.2022 22:00:41
Rob98
Nein, die SAP Funtkion öffnet immer die exportierte Datei. Durch das ausführen des Makros passiert das erst wenn die Makro fertig durchgelaufen ist.
AW: Excel Makro (SAP Scripting API)
22.05.2022 22:01:46
onur
Siehe mein letzter Post.
AW: Excel Makro (SAP Scripting API)
22.05.2022 22:00:42
onur
Du kannst die Datei doch beim Schliessen deiner Hauptdatei löschen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Kill "hier der Dateipfad"
End Sub

Anzeige
AW: Excel Makro (SAP Scripting API)
22.05.2022 22:05:19
Rob98
Die Hauptdatei wird aber nicht geschlossen... es ist nur die Datei die aus SAP kommt wird geschlossen. Die Makro unterdrückt einfach das Öffnen der Datei durch Sap welche aber nach dem beenden der Makro die Datei öffnen möchte welches aber nicht mehr geht da die Datei weg ist...
AW: Excel Makro (SAP Scripting API)
22.05.2022 22:14:03
onur
Das ist mir schon klar.
Die Hauptdatei wird nie geschlossen? Kann ich mir nicht vorstellen.
Wenn SAP erst die Datei öffnet, wenn das Makro beendet ist, und du darauf bestehst, die Datei sofort wieder zu löschen, musst du halt den Kill-Befehl aus diesem Makro nehmen und woanders plazieren.
Das nächste mal ensteht wieder eine "Export.xlsx", da das der Standardname für Excel-Export bei SAP ist - warum also überhaupt löschen?
Anzeige
nur eine Idee...
22.05.2022 22:16:40
ralf_b
Vielleicht solltest du die ganzen Sessions und Connections auch schliessen. Ich kann mir gut vorstellen das du da was auslöst, das auch noch beendet werden möchte.
AW: Excel Makro (SAP Scripting API)
22.05.2022 20:54:30
Felix
Probiere mal an der Stelle wo du Excel gerne geöffnet haben willst mit

DoEvents

AW: Excel Makro (SAP Scripting API)
22.05.2022 20:56:25
Rob98
Was macht diese Funktion? Ich möchte eigentlich nicht die Datei extra öffnen sondern nur das öffnen der Excel Datei nicht durch die Makro verhindern....
AW: Excel Makro (SAP Scripting API)
22.05.2022 20:58:11
onur
Hallo Felix, nix für Ungut, aber mit Herumraten ist ihm nicht geholfen. Wieso hältst du nicht einfach die Füße still, wenn du null Ahnung hast ?
Anzeige
AW: Excel Makro (SAP Scripting API)
22.05.2022 22:23:46
Rudi
Hallo,
ich lege die Daten aus einer Transaktion immer als lokale Datei ab und importiere sie dann per VBA oder PQ in Excel.
Ist zwar mehr Handarbeit aber einfach.
Gruß
Rudi
AW: Excel Makro (SAP Scripting API)
22.05.2022 22:25:53
onur
Hallo Rudi,
ich dachte schon, ich wäre der Einzige, der es genau so macht. :)
Gruß
Onur
AW: Excel Makro (SAP Scripting API)
22.05.2022 22:37:53
Rudi
schon seit über knapp nem 1/4 Jahrhundert. ;-) Und davor mit anderen Systemen. Daten aus Transaktionen/ Querys als TAB-getrennte Datei ab auf die Platte und in Excel per VBA verwursten.
Gruß
Rudi
AW: Excel Makro (SAP Scripting API)
22.05.2022 22:41:45
onur
Ich konnte mich bis jetzt auch nicht mit "SAP GUI Scripting" anfreunden - lieber "Old School". Ist höchstens ein bis zwei Mausklicks mehr.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge