Form.Submit ne se déroule pas lors de l'utilisation de VBA

J'ai une page Web dont je extrayage des données. Je peux faire tout bien avec VBA en dehors de cliquer sur un élément d'image qui soumet ensuite un formulaire et une fenêtre contextuelle avec des données créées.

L'un des attributs de l'élément image est appelé "productguid" et a une valeur de chaîne =

"A12-545".

Le code HTML du formulaire ressemble à ceci AVANT de cliquer sur l'élément image avec ma souris.

<form id="GetProductQuantitiesForAccessibleBranches" action="GetProductQuantitiesForAccessibleBranches" method="post"> <input type="hidden" name="ProductGuid" value=""> </form> 

C'est le code HTML APRÈS que je clique manuellement avec la souris:

 <form id="GetProductQuantitiesForAccessibleBranches" action="GetProductQuantitiesForAccessibleBranches" method="post"> <input type="hidden" name="ProductGuid" value="a12-545"> </form> 

À partir de cela, j'ai supposé que la valeur de la source de produit de l'élément d'image passe sur le formulaire avant qu'il ne soit soumis. Voici ce que mon code VBA ressemble à ceci:

 'Change the input element value ie.Document.getElementById("GetProductQuantitiesForAccessibleBranches").all.item(0).value = "a12-545" 'Submit the form ie.Document.getElementyId("GetProductQuantitiesForAccessibleBranches").Submit 

Selon la fenêtre locale, tous les événements Javascript sont Null . Les deux lignes de code sont exécutées sans aucune erreur, mais la page Web ne se met pas à jour. Est-ce que j'ai râté quelque chose?

J'ai également essayé de cliquer simplement sur l'élément d'image avec la méthode .Click , mais cela ne fait pas non plus.

Le site Web est protégé par mot de passe afin que je ne puisse pas publier l'URL publiquement.

METTRE À JOUR:

Voici le code HTML dans la balise qui est normalement cliqué manuellement qui soumet ensuite le formulaire. Peut-être y a-t-il quelque chose ici que je puisse utiliser?

 <img alt="View Quantities At Other Locations" src="/WebOrder/Images/CheckQtys.gif" title="View Quantities At Other Locations" class="popup" popupdirection="upperleft" popupwidth="380" popupcontent="#ProductQuantitiesForAccessibleBranches" onbeforepopupcreate="onBeforePopupCreate_GetProductQuantitiesForAccessibleBranches(this)" popupajaxformid="GetProductQuantitiesForAccessibleBranches" onbeforepopupajaxpost="onBeforePopupAjaxPost_GetProductQuantitiesForAccessibleBranches(this)" oncompletepopupajaxpost="onCompletePopupAjaxPost_GetProductQuantitiesForAccessibleBranches(this)" productguid="a12-545" displayitem="33902" brandguid="00000000-0000-0000-0000-000000000000" brandname="" brandsku=""> 

Donne un coup de feu, je doute que ce soit la réponse «parfaite» sans vraiment voir le site. Toutefois, cela devrait trouver la balise d'image correcte, en supposant que vous n'avez pas de cadres / iframes (s'il vous plaît vérifier qu'il n'y en a pas), et devrait cliquer dessus.

 Public Sub Click_IMG_Tag() Dim Elements As Object Dim Element As Object 'Get a pointer to IE etc first, I'm assuming this is already done Set Elements = IE.Document.getElementsByTagName("img") For Each Element In Elements On Error Resume Next ' used to bypass elements that don't have .Title property ' later, you should error handle this exception If Element.Title = "View Quantities At Other Locations" Then Element.Focus Element.Click Element.FireEvent ("OnClick") IELoad IE Exit For End If Next End Sub Public Sub IELoad(Browser As Object) While Browser.busy Or Browser.Readystate <> 4 Application.Wait (Now() + TimeValue("00:00:01")) DoEvents Wend End Sub