Alors, voici le problème que je rencontre :
Lorsque cette macro se lance le message d'erreur suivant qui s'affiche :
Je suis convaincu que le passage qui génère l'erreur est ceui-ci, mais je n'arrive pas à comprendre en quoi.Object Variable or With block variable not set
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 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
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
Partager