Posez votre question Signaler

Vba et HTML

nemo427 36Messages postés 1 octobre 2001Date d'inscription - Dernière réponse le 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 "http://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.
Lire la suite 

Vba et HTML »

2 réponses
Réponse
+0
moins plus
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 +
concour4 - 2 déc 2008 à 09:40
Bonjour

Essayez sendkeys "{enter}"

sendkeys = simulation de frappe au clavier
Ajouter un commentaire
Ce document intitulé « vba et HTML » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook