vba - ole komunikat, nie da się wyłaczyć

0

Witam,

Tworze makro excel<=>SAP w vba. I mam już go gotowe tylko w momencie kręcenia dużego raportu z programu SAP gdzie kręcenie go zajmuje gdzieś z 10 minut, excel wywala mi komunikat : " Program Microsoft Excel czeka, aż inna apliakcja ukończy akcję OLE" - nie wiem co to za komunikat, ale przerywa on moje dalsze działanie makra w taki sposób że muszę kliknąc ok w tym komunikacie żeby makro przeszło do kolejnych czynności. Czy da się pozbyć jakoś tego komunikatu? dodam że komenda application.displayalerts = false nie działa bo tu chyba nie o nią chodzi. Proszę o pomoc

w załączniku zdjęcie komunikatu. Po kliknieciu ok pojawia sie ponownie

0

Pokaż kod VBA i napisz, w której linii występuje ten błąd

0
Marcin.Miga napisał(a):

Pokaż kod VBA i napisz, w której linii występuje ten błąd

Sub Makro1()
'
' Makro1 Makro
'

'

Dim SapGuiAuto, SAPApplication, Connection, session, application
Dim plant As Object

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.starttransaction ("zpl_stock_forecast")

session.findById("wnd[0]/usr/radPA_WEEK").Select
session.findById("wnd[0]/usr/ctxtSO_WERKS-LOW").Text = "plj3"
session.findById("wnd[0]/usr/ctxtSO_WERKS-HIGH").Text = "plkl"
session.findById("wnd[0]/usr/radPA_WEEK").SetFocus
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/mbar/menu[0]/menu[3]/menu[1]").Select
session.findById("wnd[1]/usr/radRB_OTHERS").SetFocus
session.findById("wnd[1]/usr/radRB_OTHERS").Select
session.findById("wnd[1]/usr/cmbG_LISTBOX").Key = "08"
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[0,0]").Select
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[0,0]").SetFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press

ActiveWorkbook.RefreshAll
DoEvents


Windows("Arkusz w Basis (1)").Activate
Range("A1:o15000").Select
Selection.Copy


Windows("Raport zapasów targetowych DBV per oddział vs  bieżący zapas").Activate

Sheets("Dane2(consigment stock)").Select
Range("A1").Select
ActiveSheet.Paste


session.starttransaction ("ZPL_WHS_CAP")

session.findById("wnd[0]/usr/ctxtSO_WERKS-LOW").Text = "plj3"
session.findById("wnd[0]/usr/ctxtSO_WERKS-HIGH").Text = "plj3"
session.findById("wnd[0]/usr/ctxtSO_WERKS-HIGH").SetFocus
session.findById("wnd[0]/usr/ctxtSO_WERKS-HIGH").caretPosition = 0
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/usr/cntlALV_GRID_CONTAINER_HDR/shellcont/shell").pressToolbarContextButton "&MB_EXPORT"
session.findById("wnd[0]/usr/cntlALV_GRID_CONTAINER_HDR/shellcont/shell").selectContextMenuItem "&XXL"
session.findById("wnd[1]/usr/radRB_OTHERS").SetFocus
session.findById("wnd[1]/usr/radRB_OTHERS").Select
session.findById("wnd[1]/usr/cmbG_LISTBOX").Key = "08"
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[0,0]").Select
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[0,0]").SetFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press

ActiveWorkbook.RefreshAll
DoEvents

Windows("Arkusz w Basis (1)").Activate
Range("A1:L39").Select
Selection.Copy

Windows("Raport zapasów targetowych DBV per oddział vs  bieżący zapas").Activate
Sheets("Dane1 (current stock)").Select
Range("b1").Select
ActiveSheet.Paste




sd = Format(Date, "dd.mm.yyyy")
sd2 = Format(Date + 3, "dd.mm.yyyy")


Sheets("Dane4 (baza danych)").Select
 Range("e2:e36").Select
Selection.Copy



session.starttransaction ("vl06o")

session.findById("wnd[0]/usr/btnBUTTON6").press
session.findById("wnd[0]/usr/btn%_IF_VSTEL_%_APP_%-VALU_PUSH").press
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL-SLOW_I[1,0]").Text = "pl01"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL-SLOW_I[1,1]").Text = "pl02"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL-SLOW_I[1,2]").Text = "pl03"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL-SLOW_I[1,3]").Text = "pl04"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL-SLOW_I[1,4]").Text = "pl08"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL-SLOW_I[1,5]").Text = "pl12"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL-SLOW_I[1,5]").SetFocus
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL-SLOW_I[1,5]").caretPosition = 4
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[0]/usr/ctxtIT_WADAT-LOW").Text = ""
session.findById("wnd[0]/usr/ctxtIT_WADAT-HIGH").Text = ""
session.findById("wnd[0]/usr/ctxtIT_LFDAT-LOW").Text = "23.05.2016"
session.findById("wnd[0]/usr/ctxtIT_LFDAT-HIGH").Text = "03.06.2016"
session.findById("wnd[0]/usr/ctxtIT_LFDAT-HIGH").SetFocus
session.findById("wnd[0]/usr/ctxtIT_LFDAT-HIGH").caretPosition = 10
session.findById("wnd[0]/usr/btn%_IT_KUNWE_%_APP_%-VALU_PUSH").press
session.findById("wnd[1]/tbar[0]/btn[24]").press
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[0]/usr/ctxtIT_WBSTK-LOW").Text = "a"
session.findById("wnd[0]/usr/ctxtIT_WBSTK-LOW").SetFocus
session.findById("wnd[0]/usr/ctxtIT_WBSTK-LOW").caretPosition = 1
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/tbar[1]/btn[18]").press
session.findById("wnd[0]/tbar[1]/btn[43]").press
session.findById("wnd[1]/usr/radRB_OTHERS").SetFocus
session.findById("wnd[1]/usr/radRB_OTHERS").Select
session.findById("wnd[1]/usr/cmbG_LISTBOX").Key = "08"
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[0,0]").Select
session.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[0,0]").SetFocus
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press







Windows("Arkusz w Basis (1)").Activate
Range("A1:L39").Select
Selection.Copy

Windows("Raport zapasów targetowych DBV per oddział vs  bieżący zapas").Activate
Sheets("Dane3 (prepared for shipment )").Select
Range("o1").Select
ActiveSheet.Paste

Windows("Arkusz w Basis (1)").Close

session.findById("wnd[0]/tbar[1]/btn[43]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press


MsgBox ("Zrobione")


End Sub


 

po tym kodzie występuje błąd, gdyż wywołuje on kręcenie 10 minutowego raportu a excel widzi to jako błąd i wywala ten komunikat który blokuje mi możliwośc odejścia od kompa bo trzeba go kilka razy odklikać:

session.findById("wnd[0]/tbar[1]/btn[8]").press

0

proszę o pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1