"MichD" a écrit dans le message de news: jmc1ke$g1t$
Dans la fenêtre de l'éditeur de code, barre des menus / outils / référence / décoche la bibliothèque suivante si elle est cochée : 'Microsoft Internet controls"
Elle n'est pas
Le mieux teste cette procédure en utilisant un classeur tout neuf.
Il y a peut-être des nuances selon les différentes versions, mais je ne saurais te dire. Tu devrais tenter ta chance sur des forums spécialisés sur cette application en particulier.
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
jmc1ke$g1t$1@speranza.aioe.org...
Dans la fenêtre de l'éditeur de code, barre des menus / outils / référence
/
décoche la bibliothèque suivante si elle est cochée : 'Microsoft Internet
controls"
Elle n'est pas
Le mieux teste cette procédure en utilisant un classeur tout neuf.
Il y a peut-être des nuances selon les différentes versions, mais je ne
saurais te dire.
Tu devrais tenter ta chance sur des forums spécialisés sur cette
application en
particulier.
"MichD" a écrit dans le message de news: jmc1ke$g1t$
Dans la fenêtre de l'éditeur de code, barre des menus / outils / référence / décoche la bibliothèque suivante si elle est cochée : 'Microsoft Internet controls"
Elle n'est pas
Le mieux teste cette procédure en utilisant un classeur tout neuf.
Il y a peut-être des nuances selon les différentes versions, mais je ne saurais te dire. Tu devrais tenter ta chance sur des forums spécialisés sur cette application en particulier.
Pendant que je testais ça, Yopop proposait, à la place de ce message :
Do Until IE.readystate = 4 DoEvents Loop
Fredo P.
J'ai manqué de persévérance pour ce truc qui m'a paru un peu trop ardu pour mes neurones Que ce soit avec Do Until IE.readystate = 4 DoEvents Loop
ou avec
While IE.Busy DoEvents Wend rien ne passe, ou alors, je manque de patience.
===== Début module ===== Option Explicit
Dim L As Integer
Public Sub TestHtml() Dim IE As New InternetExplorer Dim IEDoc As HTMLDocument Dim CodeSource As String Dim C As Range Dim N As Integer Dim Elt As HTMLDTElement On Error GoTo ErrTestHtml DoEvents Range("A1") = "" IE.Navigate2 "google.html" MsgBox "Navigation effectuée" Set IEDoc = IE.document Debug.Print "IE" CodeSource = IEDoc.body.innerHTML Debug.Print CodeSource MsgBox Len(CodeSource) 'Range("A1") = CodeSource L = 1 Set Elt = IEDoc.body TraitementElement Elt Exit Sub ErrTestHtml: MsgBox Err.Description, , Err.Number Resume Next End Sub
Private Sub TraitementElement(ByVal E As HTMLDTElement) Dim N As Integer Dim C As Range On Error GoTo ErrTraitementElement L = L + 1 Set C = Cells(L, 2) C = E.outerHTML For N = 0 To E.ChildNodes.Length - 1 TraitementElement E.ChildNodes(N) Next Exit Sub ErrTraitementElement: Cells(L, 3) = Err.Description Resume Next End Sub
==== Fin module =====
J'ai manqué de persévérance pour ce truc qui m'a paru un peu trop ardu pour
mes neurones
Que ce soit avec
Do Until IE.readystate = 4
DoEvents
Loop
ou avec
While IE.Busy
DoEvents
Wend
rien ne passe, ou alors, je manque de patience.
===== Début module ===== Option Explicit
Dim L As Integer
Public Sub TestHtml()
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim CodeSource As String
Dim C As Range
Dim N As Integer
Dim Elt As HTMLDTElement
On Error GoTo ErrTestHtml
DoEvents
Range("A1") = ""
IE.Navigate2 "google.html"
MsgBox "Navigation effectuée"
Set IEDoc = IE.document
Debug.Print "IE"
CodeSource = IEDoc.body.innerHTML
Debug.Print CodeSource
MsgBox Len(CodeSource)
'Range("A1") = CodeSource
L = 1
Set Elt = IEDoc.body
TraitementElement Elt
Exit Sub
ErrTestHtml:
MsgBox Err.Description, , Err.Number
Resume Next
End Sub
Private Sub TraitementElement(ByVal E As HTMLDTElement)
Dim N As Integer
Dim C As Range
On Error GoTo ErrTraitementElement
L = L + 1
Set C = Cells(L, 2)
C = E.outerHTML
For N = 0 To E.ChildNodes.Length - 1
TraitementElement E.ChildNodes(N)
Next
Exit Sub
ErrTraitementElement:
Cells(L, 3) = Err.Description
Resume Next
End Sub
J'ai manqué de persévérance pour ce truc qui m'a paru un peu trop ardu pour mes neurones Que ce soit avec Do Until IE.readystate = 4 DoEvents Loop
ou avec
While IE.Busy DoEvents Wend rien ne passe, ou alors, je manque de patience.
===== Début module ===== Option Explicit
Dim L As Integer
Public Sub TestHtml() Dim IE As New InternetExplorer Dim IEDoc As HTMLDocument Dim CodeSource As String Dim C As Range Dim N As Integer Dim Elt As HTMLDTElement On Error GoTo ErrTestHtml DoEvents Range("A1") = "" IE.Navigate2 "google.html" MsgBox "Navigation effectuée" Set IEDoc = IE.document Debug.Print "IE" CodeSource = IEDoc.body.innerHTML Debug.Print CodeSource MsgBox Len(CodeSource) 'Range("A1") = CodeSource L = 1 Set Elt = IEDoc.body TraitementElement Elt Exit Sub ErrTestHtml: MsgBox Err.Description, , Err.Number Resume Next End Sub
Private Sub TraitementElement(ByVal E As HTMLDTElement) Dim N As Integer Dim C As Range On Error GoTo ErrTraitementElement L = L + 1 Set C = Cells(L, 2) C = E.outerHTML For N = 0 To E.ChildNodes.Length - 1 TraitementElement E.ChildNodes(N) Next Exit Sub ErrTraitementElement: Cells(L, 3) = Err.Description Resume Next End Sub
==== Fin module =====
Gloops
Et avec un MsgBox ? C'est moins élégant, mais ça marche.
As-tu vérifié ce que ça donne en pas à pas ?
_______________________________________ Fredo P. a écrit, le 16/04/2012 00:38 :
J'ai manqué de persévérance pour ce truc qui m'a paru un peu trop ardu pour mes neurones Que ce soit avec Do Until IE.readystate = 4 DoEvents Loop
ou avec
While IE.Busy DoEvents Wend rien ne passe, ou alors, je manque de patience.
Et avec un MsgBox ?
C'est moins élégant, mais ça marche.
As-tu vérifié ce que ça donne en pas à pas ?
_______________________________________
Fredo P. a écrit, le 16/04/2012 00:38 :
J'ai manqué de persévérance pour ce truc qui m'a paru un peu trop ardu pour
mes neurones
Que ce soit avec
Do Until IE.readystate = 4
DoEvents
Loop
ou avec
While IE.Busy
DoEvents
Wend
rien ne passe, ou alors, je manque de patience.
Et avec un MsgBox ? C'est moins élégant, mais ça marche.
As-tu vérifié ce que ça donne en pas à pas ?
_______________________________________ Fredo P. a écrit, le 16/04/2012 00:38 :
J'ai manqué de persévérance pour ce truc qui m'a paru un peu trop ardu pour mes neurones Que ce soit avec Do Until IE.readystate = 4 DoEvents Loop
ou avec
While IE.Busy DoEvents Wend rien ne passe, ou alors, je manque de patience.
MichD
Bonjour,
Avec ceci, tu devrais pouvoir importer dans Excel tout le code source d'une adresse Internet.
Copie ce qui suit dans un module standard :
Le code suivant ne requiert aucune addition d'une quelconque référence à ton projet VBA.
'------------------------------------- Sub test() Dim CodeSource As String, IE As Object Dim TempFile As String Set IE = CreateObject("InternetExplorer.Application")
TempFile = "c:MichD.txt"
IE.Visible = False ' Ou True IE.Navigate URL:="http://www.tierce-magazine.com/accueil/pid107-les-reunions-du-jour.html?day=tomorrow"
Do Until IE.readystate = 4 DoEvents Loop
CodeSource = IE.Document.body.innerHTML
Open TempFile For Output As #1 Print #1, CodeSource Close #1
Open TempFile For Input As #1 Do While Not EOF(1) Input #1, LaLigne A = A + 1 Range("A" & A) = LaLigne Loop Close #1
Avec ceci, tu devrais pouvoir importer dans Excel tout le code source d'une adresse
Internet.
Copie ce qui suit dans un module standard :
Le code suivant ne requiert aucune addition d'une quelconque référence à ton projet VBA.
'-------------------------------------
Sub test()
Dim CodeSource As String, IE As Object
Dim TempFile As String
Set IE = CreateObject("InternetExplorer.Application")
TempFile = "c:MichD.txt"
IE.Visible = False ' Ou True
IE.Navigate
URL:="http://www.tierce-magazine.com/accueil/pid107-les-reunions-du-jour.html?day=tomorrow"
Do Until IE.readystate = 4
DoEvents
Loop
CodeSource = IE.Document.body.innerHTML
Open TempFile For Output As #1
Print #1, CodeSource
Close #1
Open TempFile For Input As #1
Do While Not EOF(1)
Input #1, LaLigne
A = A + 1
Range("A" & A) = LaLigne
Loop
Close #1
Avec ceci, tu devrais pouvoir importer dans Excel tout le code source d'une adresse Internet.
Copie ce qui suit dans un module standard :
Le code suivant ne requiert aucune addition d'une quelconque référence à ton projet VBA.
'------------------------------------- Sub test() Dim CodeSource As String, IE As Object Dim TempFile As String Set IE = CreateObject("InternetExplorer.Application")
TempFile = "c:MichD.txt"
IE.Visible = False ' Ou True IE.Navigate URL:="http://www.tierce-magazine.com/accueil/pid107-les-reunions-du-jour.html?day=tomorrow"
Do Until IE.readystate = 4 DoEvents Loop
CodeSource = IE.Document.body.innerHTML
Open TempFile For Output As #1 Print #1, CodeSource Close #1
Open TempFile For Input As #1 Do While Not EOF(1) Input #1, LaLigne A = A + 1 Range("A" & A) = LaLigne Loop Close #1
J'ai manqué de persévérance pour ce truc qui m'a paru un peu trop ardu pour mes neurones Que ce soit avec Do Until IE.readystate = 4 DoEvents Loop
ou avec
While IE.Busy DoEvents Wend rien ne passe, ou alors, je manque de patience.
Je viens de faire un essai, avec IE.Busy j'ai toujours l'erreur, en revanche avec Do Until IE.ReadyState = READYSTATE_COMPLETE ça s'exé cute proprement.
Et j'ai bien vérifié que READYSTATE_COMPLETE vaut 4.
Il y a 5 valeurs, pour ReadyState. Je ne serais pas étonné que IE.Bus y corresponde à certaines de ces valeurs, mais qu'il en reste d'autres qu e READYSTATE_COMPLETE dans celles qui ne sont pas concernées.
Maintenant, si le test avec IE.Busy est satisfaisant sur certaines machines et pas sur d'autres, il est possible qu'il en aille de même de celui avec ReadyState.
Ajouter une temporisation, après ?
Dim Dt As Date Dt = Now + TimeValue("00:00:02") Application.Wait Dt
Oui enfin c'est histoire d'essayer quelque chose ...
Et les deux secondes, c'est une valeur imaginée à la louche. ça doit couvrir le temps entre le moment où IE retourne la valeur attendue, et celui où il est effectivement en mesure de répondre à la sollicitation pour retourner la source de la page. Il faut des mecs balaises pour dire de quoi ça peut dépendre, en revanche pour essayer de bricoler un truc qui puisse attendre le temps qu'il faut, j'imagine que ça peut représenter plus de monde. Quoi qu'on n'est pas au bout.
Fredo P. a écrit, le 16/04/2012 00:38 :
J'ai manqué de persévérance pour ce truc qui m'a paru un peu trop ardu pour
mes neurones
Que ce soit avec
Do Until IE.readystate = 4
DoEvents
Loop
ou avec
While IE.Busy
DoEvents
Wend
rien ne passe, ou alors, je manque de patience.
Je viens de faire un essai, avec IE.Busy j'ai toujours l'erreur, en
revanche avec Do Until IE.ReadyState = READYSTATE_COMPLETE ça s'exé cute
proprement.
Et j'ai bien vérifié que READYSTATE_COMPLETE vaut 4.
Il y a 5 valeurs, pour ReadyState. Je ne serais pas étonné que IE.Bus y
corresponde à certaines de ces valeurs, mais qu'il en reste d'autres qu e
READYSTATE_COMPLETE dans celles qui ne sont pas concernées.
Maintenant, si le test avec IE.Busy est satisfaisant sur certaines
machines et pas sur d'autres, il est possible qu'il en aille de même de
celui avec ReadyState.
Ajouter une temporisation, après ?
Dim Dt As Date
Dt = Now + TimeValue("00:00:02")
Application.Wait Dt
Oui enfin c'est histoire d'essayer quelque chose ...
Et les deux secondes, c'est une valeur imaginée à la louche.
ça doit couvrir le temps entre le moment où IE retourne la valeur
attendue, et celui où il est effectivement en mesure de répondre à la
sollicitation pour retourner la source de la page.
Il faut des mecs balaises pour dire de quoi ça peut dépendre, en
revanche pour essayer de bricoler un truc qui puisse attendre le temps
qu'il faut, j'imagine que ça peut représenter plus de monde.
Quoi qu'on n'est pas au bout.
J'ai manqué de persévérance pour ce truc qui m'a paru un peu trop ardu pour mes neurones Que ce soit avec Do Until IE.readystate = 4 DoEvents Loop
ou avec
While IE.Busy DoEvents Wend rien ne passe, ou alors, je manque de patience.
Je viens de faire un essai, avec IE.Busy j'ai toujours l'erreur, en revanche avec Do Until IE.ReadyState = READYSTATE_COMPLETE ça s'exé cute proprement.
Et j'ai bien vérifié que READYSTATE_COMPLETE vaut 4.
Il y a 5 valeurs, pour ReadyState. Je ne serais pas étonné que IE.Bus y corresponde à certaines de ces valeurs, mais qu'il en reste d'autres qu e READYSTATE_COMPLETE dans celles qui ne sont pas concernées.
Maintenant, si le test avec IE.Busy est satisfaisant sur certaines machines et pas sur d'autres, il est possible qu'il en aille de même de celui avec ReadyState.
Ajouter une temporisation, après ?
Dim Dt As Date Dt = Now + TimeValue("00:00:02") Application.Wait Dt
Oui enfin c'est histoire d'essayer quelque chose ...
Et les deux secondes, c'est une valeur imaginée à la louche. ça doit couvrir le temps entre le moment où IE retourne la valeur attendue, et celui où il est effectivement en mesure de répondre à la sollicitation pour retourner la source de la page. Il faut des mecs balaises pour dire de quoi ça peut dépendre, en revanche pour essayer de bricoler un truc qui puisse attendre le temps qu'il faut, j'imagine que ça peut représenter plus de monde. Quoi qu'on n'est pas au bout.
Gloops
Gloops a écrit, le 16/04/2012 13:59 :
Maintenant, si le test avec IE.Busy est satisfaisant sur certaines machines et pas sur d'autres, il est possible qu'il en aille de même de celui avec ReadyState.
A propos, quelle est la taille de CodeSource, finalement ?
Gloops a écrit, le 16/04/2012 13:59 :
Maintenant, si le test avec IE.Busy est satisfaisant sur certaines
machines et pas sur d'autres, il est possible qu'il en aille de même de
celui avec ReadyState.
A propos, quelle est la taille de CodeSource, finalement ?
Maintenant, si le test avec IE.Busy est satisfaisant sur certaines machines et pas sur d'autres, il est possible qu'il en aille de même de celui avec ReadyState.
A propos, quelle est la taille de CodeSource, finalement ?
Fredo P.
"MichD" a écrit dans le message de news: jmh196$vhk$
Bonjour,
Avec ceci, tu devrais pouvoir importer dans Excel tout le code source d'une adresse Internet.
Bonjour MichDenis Alors ça, tu remontes dans mon estime, c'est nickel! On peut avoir la méthode de recherche ou connaitre la source? si c'est pas secret bien sur! Ou est ce par simple intuition?
Copie ce qui suit dans un module standard :
Le code suivant ne requiert aucune addition d'une quelconque référence à ton projet VBA.
'------------------------------------- Sub test() Dim CodeSource As String, IE As Object Dim TempFile As String Set IE = CreateObject("InternetExplorer.Application")
TempFile = "c:MichD.txt"
IE.Visible = False ' Ou True IE.Navigate URL:="http://www.tierce-magazine.com/accueil/pid107-les-reunions-du-jour.html?day=tomorrow"
Do Until IE.readystate = 4 DoEvents Loop
CodeSource = IE.Document.body.innerHTML
Open TempFile For Output As #1 Print #1, CodeSource Close #1
Open TempFile For Input As #1 Do While Not EOF(1) Input #1, LaLigne A = A + 1 Range("A" & A) = LaLigne Loop Close #1
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
jmh196$vhk$1@speranza.aioe.org...
Bonjour,
Avec ceci, tu devrais pouvoir importer dans Excel tout le code source
d'une adresse
Internet.
Bonjour MichDenis
Alors ça, tu remontes dans mon estime, c'est nickel!
On peut avoir la méthode de recherche ou connaitre la source?
si c'est pas secret bien sur!
Ou est ce par simple intuition?
Copie ce qui suit dans un module standard :
Le code suivant ne requiert aucune addition d'une quelconque référence à
ton projet VBA.
'-------------------------------------
Sub test()
Dim CodeSource As String, IE As Object
Dim TempFile As String
Set IE = CreateObject("InternetExplorer.Application")
TempFile = "c:MichD.txt"
IE.Visible = False ' Ou True
IE.Navigate
URL:="http://www.tierce-magazine.com/accueil/pid107-les-reunions-du-jour.html?day=tomorrow"
Do Until IE.readystate = 4
DoEvents
Loop
CodeSource = IE.Document.body.innerHTML
Open TempFile For Output As #1
Print #1, CodeSource
Close #1
Open TempFile For Input As #1
Do While Not EOF(1)
Input #1, LaLigne
A = A + 1
Range("A" & A) = LaLigne
Loop
Close #1
"MichD" a écrit dans le message de news: jmh196$vhk$
Bonjour,
Avec ceci, tu devrais pouvoir importer dans Excel tout le code source d'une adresse Internet.
Bonjour MichDenis Alors ça, tu remontes dans mon estime, c'est nickel! On peut avoir la méthode de recherche ou connaitre la source? si c'est pas secret bien sur! Ou est ce par simple intuition?
Copie ce qui suit dans un module standard :
Le code suivant ne requiert aucune addition d'une quelconque référence à ton projet VBA.
'------------------------------------- Sub test() Dim CodeSource As String, IE As Object Dim TempFile As String Set IE = CreateObject("InternetExplorer.Application")
TempFile = "c:MichD.txt"
IE.Visible = False ' Ou True IE.Navigate URL:="http://www.tierce-magazine.com/accueil/pid107-les-reunions-du-jour.html?day=tomorrow"
Do Until IE.readystate = 4 DoEvents Loop
CodeSource = IE.Document.body.innerHTML
Open TempFile For Output As #1 Print #1, CodeSource Close #1
Open TempFile For Input As #1 Do While Not EOF(1) Input #1, LaLigne A = A + 1 Range("A" & A) = LaLigne Loop Close #1
| Alors ça, tu remontes dans mon estime, c'est nickel! | On peut avoir la méthode de recherche ou connaitre la source? | si c'est pas secret bien sur! | Ou est ce par simple intuition?
Je n'ai pas compris ta remarque. Il n'y a rien de secret, tout est dans la procédure!
| Alors ça, tu remontes dans mon estime, c'est nickel!
| On peut avoir la méthode de recherche ou connaitre la source?
| si c'est pas secret bien sur!
| Ou est ce par simple intuition?
Je n'ai pas compris ta remarque. Il n'y a rien de secret, tout est dans la procédure!
| Alors ça, tu remontes dans mon estime, c'est nickel! | On peut avoir la méthode de recherche ou connaitre la source? | si c'est pas secret bien sur! | Ou est ce par simple intuition?
Je n'ai pas compris ta remarque. Il n'y a rien de secret, tout est dans la procédure!
Fredo P.
Ce n'est pas sur la procédure qu'est posée la question mais sur comment tu as pu trouvé cette procédure, si il ya eu une recherche sur la toile ou une pure création avec pour seul soutient tes connaissances ou encore si la recherche eu été sur librairie ou autre, voila c'est pas plus curieux que ça. Ceci pour peut être pouvoir moi même avoir la ressource de trouver sans être obligé de venir sur mpfe "MichD" a écrit dans le message de news: jmi3im$ugc$
| Alors ça, tu remontes dans mon estime, c'est nickel! | On peut avoir la méthode de recherche ou connaitre la source? | si c'est pas secret bien sur! | Ou est ce par simple intuition?
Je n'ai pas compris ta remarque. Il n'y a rien de secret, tout est dans la procédure!
Ce n'est pas sur la procédure qu'est posée la question mais sur comment tu
as pu trouvé cette procédure, si il ya eu une recherche sur la toile ou une
pure création avec pour seul soutient tes connaissances ou encore si la
recherche eu été sur librairie ou autre, voila c'est pas plus curieux que
ça.
Ceci pour peut être pouvoir moi même avoir la ressource de trouver sans être
obligé de venir sur mpfe
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
jmi3im$ugc$1@speranza.aioe.org...
| Alors ça, tu remontes dans mon estime, c'est nickel!
| On peut avoir la méthode de recherche ou connaitre la source?
| si c'est pas secret bien sur!
| Ou est ce par simple intuition?
Je n'ai pas compris ta remarque. Il n'y a rien de secret, tout est dans la
procédure!
Ce n'est pas sur la procédure qu'est posée la question mais sur comment tu as pu trouvé cette procédure, si il ya eu une recherche sur la toile ou une pure création avec pour seul soutient tes connaissances ou encore si la recherche eu été sur librairie ou autre, voila c'est pas plus curieux que ça. Ceci pour peut être pouvoir moi même avoir la ressource de trouver sans être obligé de venir sur mpfe "MichD" a écrit dans le message de news: jmi3im$ugc$
| Alors ça, tu remontes dans mon estime, c'est nickel! | On peut avoir la méthode de recherche ou connaitre la source? | si c'est pas secret bien sur! | Ou est ce par simple intuition?
Je n'ai pas compris ta remarque. Il n'y a rien de secret, tout est dans la procédure!