Bonjour à tous,
Je veux récupérer deux données qui se trouvent sur un site (le Type d'entité et la Forme légale d'une entreprise).
Le but est de faire une boucle sur plusieurs numéro. Je prends un exemple de numéro : 400186069.
Les valeurs cherchées sont : Personne morale + "Société anonyme Depuis le 24 janvier 1951"
Voici le code utilisé :
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112 Option Explicit Sub RechercheVBAExcel() 'Déclaration des variables Dim IE As New InternetExplorer Dim IEDoc As HTMLDocument Dim InputGoogleZoneTexte As HTMLInputElement Dim InputGoogleBouton As HTMLInputElement Dim HtmlElementStandard As HTMLGenericElement Dim LeTexteExtrait As String Dim EntiteExtrait Dim FormLegExtrait Dim elem As Integer Dim RetVal As Long Dim Ligne As Long Dim EntiteOK As String Dim FormLegOK As String 'Chargement d'une page Web Google IE.Navigate "https://kbopub.economie.fgov.be/kbopub/zoeknummerform.html?lang=fr" 'Affichage de la fenêtre IE IE.Visible = True 'On attend le chargement complet de la page WaitIE IE 'On pointe le membre Document Set IEDoc = IE.document 'On pointe notre Zone de texte Set InputGoogleZoneTexte = IEDoc.all("nummer") 'On définit le texte que l'on souhaite placer à l'intérieur InputGoogleZoneTexte.Value = ActiveCell.Value 'On pointe notre bouton Set InputGoogleBouton = IEDoc.all("actionLu") 'On simule un clic InputGoogleBouton.Click 'On attend la fin de la recherche WaitIE IE '*********** 'Allons chercher ce texte dans notre Item46 Set HtmlElementStandard = IEDoc.body.all(115) 'On attend la fin de la recherche WaitIE IE EntiteOK = "NOK" FormLegOK = "NOK" For elem = 0 To IEDoc.body.all.Length - 1 'Récupération du type d'entité If IEDoc.body.all(elem).className = "QL" And IEDoc.body.all(elem).innerText = "Type d'entité: " Then EntiteExtrait = IEDoc.body.all(elem + 1).innerText 'MsgBox EntiteExtrait EntiteOK = "OK" End If 'Récupération de la forme légale If IEDoc.body.all(elem).className = "RL" And IEDoc.body.all(elem).innerText = "Forme légale: " Then FormLegExtrait = IEDoc.body.all(elem + 1).innerText 'MsgBox FormLegExtrait FormLegOK = "OK" End If If EntiteOK = "OK" And FormLegOK = "OK" Then GoTo RechercheComplete Next elem RechercheComplete: 'On le place dans notre variable prévue à cet effet ' LeTexteExtrait = HtmlElementStandard.innerText 'On affiche le texte 'MsgBox LeTexteExtrait, Title:="Le texte extrait de la page" '********** 'PLacement des données Ligne = ActiveCell.Row Range("X" & Ligne).Value = EntiteExtrait Range("Y" & Ligne).Value = FormLegExtrait 'On attend la fin de la recherche WaitIE IE 'Suppreesion des instances IE RetVal = Shell("Taskkill /im iexplore.exe /f", 0) 'On libère les variables Set IE = Nothing Set IEDoc = Nothing End Sub Sub WaitIE(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
Hier, quand j'étais sur mon lieu de travail, tout fonctionnait parfaitement. Aujourd'hui (chez moi en Wifi) - c'est la seule chose qui a changé - Je pense? -, j'ai une erreur :
Erreur d'exécution '70' :
Permission refusée
sur la ligne
Avez-vous une idée pour résoudre ce truc de p.... ? Si je fais Débogage et F5, la macro se relance sans soucis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part For elem = 0 To IEDoc.body.all.Length - 1
NB : en pas à pas, pas de soucis.
Partager