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.
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
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 +
Essayez sendkeys "{enter}"
sendkeys = simulation de frappe au clavier