Vba et HTML

Fermé
nemo427 Messages postés 36 Date d'inscription lundi 1 octobre 2001 Statut Membre Dernière intervention 8 août 2008 - 6 juin 2008 à 16:30
 concour4 - 2 déc. 2008 à 09:40
Bonjour,
Je pilote un programme intranet avec VBA Excel.
Après avoir enseigné les différents paramètres. J'arrive à un bouton lancer qui va sélectionner les articles correspondants aux données entrées.

Voici le code source :

</tr><tr>
<td colspan="8" align="center">
<input type="image" src="../../../../img/bt_lancer.gif">
</td>
</tr>
</table>
</form>
<br>
<hr>
</body>
</html>

Et voici une des versions de mon module chargé de traiter le problème :

Option Explicit

Private Declare Function URLDownloadToCacheFile Lib "urlmon" Alias "URLDownloadToCacheFileA" (ByVal lpUnkcaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwBufLength As Long, ByVal dwReserved As Long, ByVal IBindStatusCallback As Long) As Long


Private Function DownloadFile(URL As String) As String
Dim lngRetVal As Long
Dim sLocalFilename As String
'procedure de telechargement de l'image (trouvé sur le net???)
'(pour eviter d'utiliser un contrôle Inet...)
sLocalFilename = Space(300)
lngRetVal = URLDownloadToCacheFile(0, URL, sLocalFilename, Len(sLocalFilename), 0, 0)

If lngRetVal = 0 Then
DownloadFile = Trim(sLocalFilename)
End If
End Function

Function RndStr(nb As Integer) As String
Dim I As Integer
'renvoie une chaine de nb caracteres aléatoires...(de a à z)
RndStr = ""
For I = 1 To nb
RndStr = RndStr + Chr(CInt(Rnd * 25) + 97)
Next I

End Function

Public Sub ExpertResearch() ' Accès au programme Experts
Dim maPageHtml As HTMLDocument
Dim Helem As HTMLElementCollection
Dim TypeDocument As String
Dim Deleg As Object
Dim HTMLDelegElement(100) As HTMLElementCollection
Dim htmlDoc As Object
Dim IESubmit As HTMLFormElement
Dim IECtrl As HTMLFormElement
Dim IE As Object
Dim sLocalFilename As String
Const READYSTATE_INTERACTIVE = 3
Const READYSTATE_COMPLETE = 4

'crée un objet internet Explorer
Set IE = CreateObject("InternetExplorer.Application")
'le masque
IE.Visible = True

'ouvre la page d'enregistrement de identification Ecti
IE.navigate "https://www.intranet-ecti.org/asp/Experts/ExpertsActifs/selectionGenerale/filtre.asp"
'attends que la page soit ouverte
Do While IE.readyState <> READYSTATE_INTERACTIVE
DoEvents
Loop

Do While IE.readyState <> READYSTATE_COMPLETE
DoEvents
Loop

' Formulaire

'remplit les champs nécessaires...
IE.DOCUMENT.all("AnNai").Value = "1960"
IE.DOCUMENT.all("M10").Value = "COMPTABLE"
IE.DOCUMENT.all("M11").Value = "GESTION"
IE.DOCUMENT.all("M12").Value = "AUDIT"
IE.DOCUMENT.all("Dep1").Value = "75"
IE.DOCUMENT.all("Dep2").Value = "77"
IE.DOCUMENT.all("Dep3").Value = "78"
IE.DOCUMENT.all("Dep4").Value = "91"
IE.DOCUMENT.all("Dep5").Value = "92"
IE.DOCUMENT.all("Dep6").Value = "93"
IE.DOCUMENT.all("Dep7").Value = "94"
IE.DOCUMENT.all("Dep8").Value = "95"

Do While IE.readyState <> READYSTATE_INTERACTIVE
DoEvents
Loop
'
Do While IE.readyState <> READYSTATE_COMPLETE
DoEvents
Loop

Set IESubmit = htmlDoc.forms(0)
IESubmit.submit

End Sub

Je perds la main et quand je fais CTRL + Pause, le curseur est sur le do events souligné.
Si quelqu'un peut me sortir du pétrin...
Merci.

1 réponse

nemo427 Messages postés 36 Date d'inscription lundi 1 octobre 2001 Statut Membre Dernière intervention 8 août 2008 4
8 juin 2008 à 10:46
Je crois avoir progressé.
En fait, quand je suis sur la page web, et après avoir renseigné le formulaire, il me suffit de faire "entrée" et la page suivante s'affiche. Je crois comprendre qu'il faudrait, dans le programme vba, simuler ce retour charriot.
Comment ?
Je cherche en mettant dans form(0) un code ASCII
Si vous avez quelques lumières...
A +
0
Bonjour

Essayez sendkeys "{enter}"

sendkeys = simulation de frappe au clavier
0