Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA SAP Script

Forumthread: VBA SAP Script

VBA SAP Script
08.11.2012 14:42:09
Maximilian
Schönen Nachmittag die Herren,
Ich habe eine SAP Transaktion. Bei manchen Aufträgen frägt SAP beim speichern nochmal nach, ob wirklich gespeichert werden soll.
Um dies zu bestätigen kann ich per
.findById("wnd[1]/usr/btnSPOP-OPTION1").press

Auf "Ja" klicken.
Problem ensteht dann, wenn das Fenster nicht erscheint, VBA wirft dann einen Error, weil er den Button, der gedrückt werden soll, nicht findet.
Ich wollte das Problem so lösen:
On Error GoTo Weiter
.findById("wnd[0]/tbar[0]/btn[11]").press
.findById("wnd[1]/usr/btnSPOP-OPTION1").press
Weiter:
Cells(i, 3).Value = "Ok"
Funktioniert nur nicht, der Debugger wird trotzdem immer ausgeführt und der Code beendet.
Ich weiß nicht, wie ich prüfen kann, ob das Nachfragefenster geworfen wird oder nicht ("wnd[1]")
Ich hab dinge Probiert wie IsObject("wnd[1]") oder IsObject(.findById("wnd[1]/usr/btnSPOP-OPTION1"))... jedoch funktioniert nichts davon.
Hat jemand eine Idee?

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA SAP Script
08.11.2012 15:40:52
Timo
Hallo Maximilian,
Dein Code-Schnipsel enthält ja nur das .findbyid, wie lautet die zugehörige With Anweisung?
Beispiel:
.name="Test"
funktioniert so nicht.
activecell.name="Test"
funktioniert, oder eben
with activecell
.name="Test"
end with
vielleicht hilft Dir das weiter, oder aber Anderen bei der Beantwortung.
Danke und Gruß
Timo

Anzeige
AW: VBA SAP Script
08.11.2012 15:43:59
Maximilian

With SAPSesi
.findById("wnd[0]/usr/txtRSYST-MANDT").Text = sapClient
.findById("wnd[0]/usr/txtRSYST-BNAME").Text = SAPForm.BoxUser.Text
.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = SAPForm.BoxPass.Text
.findById("wnd[0]/usr/txtRSYST-LANGU").Text = "DE"
.findById("wnd[0]").sendVKey 0
'SAP SKRIPT
'CO02 ausführen
.findById("wnd[0]/tbar[0]/okcd").Text = "CO02"
.findById("wnd[0]").sendVKey 0
'Daten eingeben & ausführen
For i = 2 To Sheets(1).UsedRange.Rows.Count
'On Error GoTo Fehler2
If Cells(i, 3).Value = "" Then
'Auftrag eingeben
.findById("wnd[0]/usr/ctxtCAUFVD-AUFNR").Text = Cells(i, 1).Value
.findById("wnd[0]").sendVKey 0
'String suchen
On Error GoTo Weiter1
.findById("wnd[0]/mbar/menu[1]/menu[1]").Select
.findById("wnd[1]/usr/txtRSYSF-STRING").Text = Cells(i, 2).Value
.findById("wnd[1]/usr/txtRSYSF-STRING").caretPosition = 10
.findById("wnd[1]").sendVKey 0
'Gesuchten Auftrag auflisten
.findById("wnd[2]/usr/lbl[16,2]").SetFocus
.findById("wnd[2]/usr/lbl[16,2]").caretPosition = 7
.findById("wnd[2]").sendVKey 2
.findById("wnd[0]/tbar[1]/btn[18]").press
Weiter1:
'Datum ändern
On Error Resume Next
.findById("wnd[0]/usr/tabsTABSTRIP_0115/tabpKOZE/ssubSUBSCR_0115:SAPLCOKO1:0120/ _
ctxtCAUFVD-GLTRP").Text = Range("E1").Value
.findById("wnd[0]/usr/tabsTABSTRIP_0115/tabpKOZE/ssubSUBSCR_0115:SAPLCOKO1:0120/ _
ctxtCAUFVD-GLTRP").SetFocus
.findById("wnd[0]/usr/tabsTABSTRIP_0115/tabpKOZE/ssubSUBSCR_0115:SAPLCOKO1:0120/ _
ctxtCAUFVD-GLTRP").caretPosition = 10
.findById("wnd[0]").sendVKey 0
.findById("wnd[0]").sendVKey 0
.findById("wnd[0]").sendVKey 0
.findById("wnd[0]").sendVKey 0
'Speichern
.findById("wnd[0]").sendVKey 12
'HIER WIRD DER FEHLER GEWORFEN, WENN DAS FENSTER NICHT AUFTAUCHT
.findById("wnd[1]/usr/btnSPOP-OPTION1").press
Cells(i, 3).Value = "Ok"
End If
Next
End With

Anzeige
;
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige