Bonjour,

J'ai réalisé un peu programme (avec l'aide d'internet) pour interroger des pages internet de chronopost pour récupérer l'information de l'état d'avancement du colis.

Le programme fonctionne mais fonctionne seulement avec la première adresse, mais lorsque j'arrive pour la deuxième adresse il fait une erreur de ce type :

"Erreur d’exécution '-214741848(80010108)':
Erreur Automation
L'objet invoqué s'est déconnecté de ses clients."

A chaque relance du programme, même résultat

Voici le code :

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
Sub Wait(ie As InternetExplorer)
   'On boucle tant que la page n'est pas totalement chargée
   Do Until ie.ReadyState = READYSTATE_COMPLETE
      DoEvents
   Loop
End Sub
 
Sub ouvrirIE_Chronopost()
'Déclaration des variables
Dim ie As New InternetExplorer
Dim IEdoc As HTMLDocument
Dim Statut As String
Dim Adresse As String
Dim NLigne As Integer
 
'Application.ScreenUpdating = False
Windows("Table HL_20150630.xls").Activate
Sheets("Analyse Flux Aller").Activate
'NLigne = Cells(1, 1).CurrentRegion.Rows.Count
 
For i = 0 To 200
    Adresse = Cells(i, 36)
    ' ex d'adresse
        'http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?listeNumeros=DH953027702EE
        'http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?listeNumeros=DH957027699EE
        'http://www.chronopost.fr/expedier/inputLTNumbersNoJahia.do?listeNumeros=DH957027889EE
    If Adresse <> "" And Cells(i, 43) = "CHRONOPOST" Then
        'Charger le site internet de Chronopost
        ie.Navigate Adresse
        'Affichage de la fenêtre IE
        ie.Visible = True
        'On attend le chargement complet de la page
        Wait ie
        'On pointe le membre Document
        Set IEdoc = ie.document
        Set HtmlElementStandard = IEdoc.body.all(47)
        ' définition du statut (innertext à utiliser ??)
        Statut = HtmlElementStandard.innerText
        ' on place le statut dans la cellule concernée
        Cells(i, 37).Value = Right(Statut, Len(Statut) - 47)
        'On libère la variable IE
        Set ie = Nothing
        'Fermer l'instance d'IE
        ie.Quit
    End If
Next i
'Application.ScreenUpdating = True
End Sub
merci d'avance pour votre aide