Action OLE bloquante

Bonjour,

J'ai une macro VBA qui fait tourner une transaction sur un logiciel a coté (SAP) mais c'est une transaction qui met une dizaine de minutes à tourner ; durant cela ce message s'affiche "Excel attend la fin de l’exécution d'une action OLE" ; une fois que la transaction a tourné et que je valide ce message tout fonctionne bien. Le soucis est que je cherche à tout automatiser et que je n'aie plus à valider manuellement (car si je ne valide pas les macros suivantes ne démarrent pas).

Avez vous du code pour valider lorsque cette boite de dialogue apparaît, un réglage à changer...

image

Bonjour matteodut,

Je pense que votre code pour la transaction SAP n'est pas correcte

Perso, je ne lance pas d'exécution OLE

A+

Pouvez vous détailler pour me dire qu'est ce qui pourrait lancer l'action OLE ? Car le code provenant de SAP est un script enregistré par les manipulations que je fais (enregistreur de script)

Mais de ce que vous me dites la boite de dialogue n'apparaîtrait pas à cause du long temps d’exécution ?

Re,

Merci de nous donner le code exploité à mettre entre balises avec le bouton prévu

Sans ça je ne pourrait pas vous aider

A+

Sub SAPtest()
    Call SAPOuverture
    Call SAPTransaction("ZMD47")
    Call lancementzmd47
    Call formatage_zmd47

Sub lancementzmd47()

session.findById("wnd[0]").maximize
session.findById("wnd[0]/usr/ctxtRM61M-PRGRP").Text = "REFERENCES EE"
session.findById("wnd[0]/usr/ctxtRM61M-USPRF").SetFocus
session.findById("wnd[0]/usr/ctxtRM61M-USPRF").caretPosition = 0
session.findById("wnd[0]").sendVKey 4
session.findById("wnd[1]/usr/lbl[1,15]").SetFocus
session.findById("wnd[1]/usr/lbl[1,15]").caretPosition = 3
session.findById("wnd[1]").sendVKey 2
session.findById("wnd[0]/tbar[0]/btn[0]").press

End Sub

Sub formatage_zmd47()

session.findById("wnd[0]/usr/cntlTREE_CONTROL/shellcont/shell/shellcont[1]/shell[1]").pressHeader "HierarchyHeader" 'axe de temps en mois
session.findById("wnd[0]/usr/cntlTREE_CONTROL/shellcont/shell/shellcont[1]/shell[1]").pressHeader "HierarchyHeader" ' axe de temps en semaines
session.findById("wnd[0]/usr/cntlTREE_CONTROL/shellcont/shell/shellcont[1]/shell[0]").pressButton "PGALL" ' affichage de tous les articles

end sub
session.findById("wnd[0]/usr/cntlTREE_CONTROL/shellcont/shell/shellcont[1]/shell[0]").pressButton "PGALL" ' affichage de tous les articles

C'est cette ligne d'affichage des articles qui prend du temps (d'abord affiché par ligne de fabrication, donc je demande d'afficher par référence environ 10 minutes)

Ce n'est pas du VBA que j'ai rédigé mais un enregistrement de script de SAP

Rechercher des sujets similaires à "action ole bloquante"