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

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?

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige