Bonjour,
J'ai développé un script associé à une macro excel permettant de saisir des nominations de type 'back to back" dans le module TSW de SAP.
Le principe est de saisir dans Excel des numéros de contrat d'achat et de vente puis d'aller dans SAP pour vérifier l'existence de ces contrats avant le début de la création des nominations.
Pour la recherche du contrat d'achat cela fonctionne, ci-dessous les lignes de code :
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "ME33K"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtRM06E-EVRTN").Text = NUM_CONT_ACHT
session.findById("wnd[0]/usr/ctxtRM06E-EVRTN").caretPosition = 3
session.findById("wnd[0]").sendVKey 0
'Si contrat d'achat pas existant, message d'erreur
If session.findById("wnd[0]/sbar").Text <> "" Then
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/btn[3]").press
Windows("Saisie des nominations techniques BIO.xls").Activate
MsgBox ("Ce numéro de contrat d'achat n'existe pas, merci de le resaissir"): Range("B6").Select
Exit Sub
End If
session.findById("wnd[0]/usr/ctxtRM06E-EVRTN").caretPosition = 3
session.findById("wnd[0]").sendVKey 0
Si le contrat d'achat n'existe pas la macro revient à la saisie du contrat d'achat.
Mais pour le contrôle du contrat de vente ça plante....
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "VA43"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtVBAK-VBELN").Text = NUM_CONT_VTE
session.findById("wnd[0]/usr/ctxtVBAK-VBELN").caretPosition = 9
session.findById("wnd[0]").sendVKey 0
'Si contrat de vente pas existant, message d'erreur
If session.findById("wnd[0]/sbar").Text <> "" Then
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/btn[3]").press
Windows("Saisie des nominations techniques BIO.xls").Activate
MsgBox ("Ce numéro de contrat de vente n'existe pas, merci de le resaissir"): Range("B6").Select
Exit Sub
End If
Et ça plante carrément car même si le contrat de vente existe ça ne fonctionne pas ...
Des idées ?
Merci d'avance.