Alors, voici le problème que je rencontre :

Lorsque cette macro se lance le message d'erreur suivant qui s'affiche :

Object Variable or With block variable not set
Je suis convaincu que le passage qui génère l'erreur est ceui-ci, mais je n'arrive pas à comprendre en quoi.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 Do Until IE.readyState = READYSTATE_COMPLETE 'Charge IE
        DoEvents
    Loop
 
    Do Until IE.document.readyState = "complete"
             DoEvents
    Loop 'attend la fin du chargement du document
Le code général de la macro est le suivant :

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
Sub Importer_tableau_Basias(Debut As Integer, nb_Basias As Integer, Xref As Long, Yref As Long) 'Fonction d'importation du tableau Basias
'Nécessite d 'activer les references
    'Microsoft HTML Objects Library
    'et
    'Microsoft Internet Controls
 
Dim IE As InternetExplorer 'Définition des variables
Dim maPageHtml As HTMLDocument
Dim Htable As IHTMLElementCollection
Dim maTable As IHTMLTable
Dim j As Integer, i As Integer
Dim Code_Basias As String
Dim XLambert As Long
Dim YLambert As Long
Dim NomEntreprise As String
Dim Fin_Activite As Integer
Dim Date_Debut As String
Dim Date_Fin As String
Dim Activite As String
Dim Code As String
Dim g As Integer
Dim URL As String
Dim Compteur As Integer
Dim Fin As Integer
Dim Indice As Integer
Dim Distance As Long
Dim Position As String
Dim Angle As Integer
Dim Rayon As Long
Indice = nb_Basias + 8
g = 0
 
URL = "http://basias.brgm.fr/fiche_detaillee.asp?IDT=" & Worksheets("Configuration").Range("G" & Indice).Value
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False
 
Worksheets("Tableau de données").Select 'Sélectionner le tableau de données
IE.navigate URL
    'Application.Wait TimeValue(Now) + TimeValue("00:00:05")
 
     Do Until IE.readyState = READYSTATE_COMPLETE 'Charge IE
        DoEvents
    Loop
 
    Do Until IE.document.readyState = "complete"
             DoEvents
    Loop 'attend la fin du chargement du document
 
 'L'état d'occupation du site n'est pas sur la même page web que le reste, on la charge donc avant
Set maPageHtml = IE.document 'Charger le document IE
 
Set Htable = maPageHtml.getElementsByTagName("table") 'charger les éléments du tableau
 
Compteur = 0
 
While Compteur = 0 'Tant que compteur = 0
    If Htable(g).Rows(0).Cells(0).innerText = "Première adresse :" Then 'Si
        Compteur = g 'compteur = g
    End If
    g = g + 1
Wend
Set maTable_nom = Htable(Compteur)
EtatOccupation = maTable_nom.Rows(3).Cells(1).innerText
 
'il arrive que la case Etat occupation soit décalé d'une case, dans ce cas:
If EtatOccupation = "Inventorié" Then
EtatOccupation = maTable_nom.Rows(4).Cells(1).innerText
 
End If
 
 
Cells(Debut, 9) = EtatOccupation 'Cellules de la ligne du début et colonne 9 = Etat d'occupation
 
 
End Sub