2017-10-06 5 views
0

Dans le code ci-dessous, j'extrais des données de SAP. Dans quelques rapports SAP je suis en cours d'exécution, parfois des données ne sont pas disponibles, dans lequel une boîte pop-up apparaît, affichant "Aucune donnée pour la sélection choisie"ID de contrôle d'erreur SAP VBA introuvable

J'ai implémenté la stratégie de gestion des erreurs ci-dessous, qui fonctionne bien quand le débogage et d'entrer dans le code, mais en cours d'exécution dans sa totalité, je reçois cette erreur sur la ligne notée asterik: « le contrôle n'a pas pu être trouvé par ID »

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

On Error GoTo ResumeInterCompany 
**If session.findById("wnd[1]/tbar[0]").Text = "No data exists for chosen selection" Then** 
GoTo TroubleShootInterCompany 

End If 

Toutes les suggestions. Je peux fournir un code plus pertinent si nécessaire.

+0

Il n'y a pas la barre d'outils à l'index 0? Où n'y a pas de fenêtre à l'index 1? FWIW il y a 100% une meilleure façon de faire ce que vous essayez de faire, que d'utiliser les sauts 'GoTo'. –

+0

Vous devriez vérifier pour vous assurer que votre méthode findById renvoie un objet, avant d'essayer de cliquer dessus. –

Répondre

0

Ma solution est la suivante:

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

On Error Resume next 
myText = "x" 
err.clear 
myText = session.findById("wnd[1]/tbar[0]").Text 
if err.number <> 0 then myText = "" 
on error goto 0 
If myText = "No data exists for chosen selection" Then 
    GoTo TroubleShootInterCompany 
End If 

Cordialement, ScriptMan