Bonjour,
Je pilote un programme intranet avec VBA Excel.
Après avoir renseigné 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 :
Et voici une des versions de mon module chargé de traiter le problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 </tr><tr> <td colspan="8" align="center"> <input type="image" src="../../../../img/bt_lancer.gif"> </td> </tr> </table> </form> <br> <hr> </body> </html>
Je perds la main et quand je fais CTRL + Pause, le curseur est sur le do events souligné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86 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 = "1940" 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 <souligne><gras>DoEvents</gras></souligne> Loop ' Do While IE.readyState <> READYSTATE_COMPLETE DoEvents Loop Set IESubmit = htmlDoc.forms(0) IESubmit.submit End Sub
Si quelqu'un peut me sortir du pétrin...
Silky Road m'a déjà aidé sur ce programme ...
Merci.
Partager