Vérification "poussée" liens sur excel

Le
Nicolas C.
Bonjour,

J'ai découvert ce forum il y a peu grâce au site jacxl.free.fr j'espè=
re
pouvoir y échanger beaucoup d'informations avec vous tous.

Voila mon problème :

Je cherche à vérifier des liens via excel, j'ai repris le code prés=
ent
sur jacxl.free.fr et l'ai modifié à ma sauce ;) Cela fonctionne pr=
esque !

Les adresses que je veux vérifiées ne provoque pas d'erreur "grave" s=
i
elle n'existent pas, IE ou Firefox remplace automatiquement le nom de
fichier par un autre approchant sans afficher de page d'erreur !

Exemple :
"http://www.kalidil.com/images_produit/3XXV66.jpg" (cette image n'est
pas présente sur le serveur)

sera remplacée automatiquement par

"http://www.kalidil.com/images_produit/3XXV60.jpg" (image bien présente=

sur le serveur)

sans laisser aucun message d'erreur .

Je pense que c'est cela qui empêche le code VBA de vérification de
signaler le problème.

Voila le code de ma macro :

Private Declare Function OuvreInternet Lib "wininet" Alias "InternetOpenA=
" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName=
_
As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Lo=
ng
Private Declare Function InternetOpenUrl Lib "wininet" Alias
"InternetOpenUrlA" _
(ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal
lpszHeaders As String, _
ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal
dwContext As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal zaza
As Long) As Integer

Sub Test_page_Web_2()
For Counter = 2 To 500
Set URL_à_tester = Worksheets("listing TL").Cells(Counter, 12)
internet_ouvert = OuvreInternet("Test_validité", 1, vbNullString,
vbNullString, 0) 'ouvre Internet
numURL = InternetOpenUrl(internet_ouvert, URL_à_tester, vbNullString,=
_
ByVal 0&, &H80000000, ByVal 0&) 'ouvre la page Web
If numURL > 0 Then Worksheets("données").Cells(Counter, 9).FormulaR1C1 =
=
"OK" _
Else Worksheets("données").Cells(Counter, 9).FormulaR1C1 = URL_à=
_tester
InternetCloseHandle numURL 'ferme la page
InternetCloseHandle internet_ouvert 'ferme Internet
Next Counter
End Sub

Je me demandais donc si il était possible de vérifier quel code HTML =

renvoyai la page testée et si on pouvais faire une vérification a par=
tir
de cela (voir : http://www.the-eggman.com/seminars/html_error_codes.htm)

Quelqu'un a une idée ?

Merci de m'avoir lu.

Cordialement,

Nicolas
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #5388361
Bonjour.
Si le serveur ne retourne pas d'erreur, c'est que le lien existe, mais qu'il
redirige vers une autre adresse. Il n'y a donc pas d'erreur du tout, mais
redirection.
Cordialement.
Daniel
"Nicolas C."
Bonjour,

J'ai découvert ce forum il y a peu grâce au site jacxl.free.fr j'espère
pouvoir y échanger beaucoup d'informations avec vous tous.

Voila mon problème :

Je cherche à vérifier des liens via excel, j'ai repris le code présent
sur jacxl.free.fr et l'ai modifié à ma sauce ;) Cela fonctionne... presque !

Les adresses que je veux vérifiées ne provoque pas d'erreur "grave" si
elle n'existent pas, IE ou Firefox remplace automatiquement le nom de
fichier par un autre approchant sans afficher de page d'erreur !

Exemple :
"http://www.kalidil.com/images_produit/3XXV66.jpg" (cette image n'est
pas présente sur le serveur)

sera remplacée automatiquement par

"http://www.kalidil.com/images_produit/3XXV60.jpg" (image bien présente
sur le serveur)

sans laisser aucun message d'erreur .

Je pense que c'est cela qui empêche le code VBA de vérification de
signaler le problème.

Voila le code de ma macro :

Private Declare Function OuvreInternet Lib "wininet" Alias "InternetOpenA" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName _
As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet" Alias
"InternetOpenUrlA" _
(ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal
lpszHeaders As String, _
ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal
dwContext As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal zaza
As Long) As Integer

Sub Test_page_Web_2()
For Counter = 2 To 500
Set URL_à_tester = Worksheets("listing TL").Cells(Counter, 12)
internet_ouvert = OuvreInternet("Test_validité", 1, vbNullString,
vbNullString, 0) 'ouvre Internet
numURL = InternetOpenUrl(internet_ouvert, URL_à_tester, vbNullString, _
ByVal 0&, &H80000000, ByVal 0&) 'ouvre la page Web
If numURL > 0 Then Worksheets("données").Cells(Counter, 9).FormulaR1C1 "OK" _
Else Worksheets("données").Cells(Counter, 9).FormulaR1C1 = URL_à_tester
InternetCloseHandle numURL 'ferme la page
InternetCloseHandle internet_ouvert 'ferme Internet
Next Counter
End Sub

Je me demandais donc si il était possible de vérifier quel code HTML
renvoyai la page testée et si on pouvais faire une vérification a partir
de cela (voir : http://www.the-eggman.com/seminars/html_error_codes.htm)

Quelqu'un a une idée ?

Merci de m'avoir lu.

Cordialement,

Nicolas
Nicolas C.
Le #5388131
Bonjour.
Si le serveur ne retourne pas d'erreur, c'est que le lien existe, mais qu'il
redirige vers une autre adresse. Il n'y a donc pas d'erreur du tout, ma is
redirection.
Cordialement.
Daniel
"Nicolas C."
Bonjour,

J'ai découvert ce forum il y a peu grâce au site jacxl.free.fr j'es père
pouvoir y échanger beaucoup d'informations avec vous tous.

Voila mon problème :

Je cherche à vérifier des liens via excel, j'ai repris le code pré sent
sur jacxl.free.fr et l'ai modifié à ma sauce ;) Cela fonctionne... presque !

Les adresses que je veux vérifiées ne provoque pas d'erreur "grave" si
elle n'existent pas, IE ou Firefox remplace automatiquement le nom de
fichier par un autre approchant sans afficher de page d'erreur !

Exemple :
"http://www.kalidil.com/images_produit/3XXV66.jpg" (cette image n'est
pas présente sur le serveur)

sera remplacée automatiquement par

"http://www.kalidil.com/images_produit/3XXV60.jpg" (image bien présen te
sur le serveur)

sans laisser aucun message d'erreur .

Je pense que c'est cela qui empêche le code VBA de vérification de
signaler le problème.

Voila le code de ma macro :

Private Declare Function OuvreInternet Lib "wininet" Alias "InternetOpe nA" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyNa me _
As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet" Alias
"InternetOpenUrlA" _
(ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal
lpszHeaders As String, _
ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal
dwContext As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal zaza
As Long) As Integer

Sub Test_page_Web_2()
For Counter = 2 To 500
Set URL_à_tester = Worksheets("listing TL").Cells(Counter, 12)
internet_ouvert = OuvreInternet("Test_validité", 1, vbNullString,
vbNullString, 0) 'ouvre Internet
numURL = InternetOpenUrl(internet_ouvert, URL_à_tester, vbNullStrin g, _
ByVal 0&, &H80000000, ByVal 0&) 'ouvre la page Web
If numURL > 0 Then Worksheets("données").Cells(Counter, 9).FormulaR1C 1 =
"OK" _
Else Worksheets("données").Cells(Counter, 9).FormulaR1C1 = URL _à_tester
InternetCloseHandle numURL 'ferme la page
InternetCloseHandle internet_ouvert 'ferme Internet
Next Counter
End Sub

Je me demandais donc si il était possible de vérifier quel code HTM L
renvoyai la page testée et si on pouvais faire une vérification a p artir
de cela (voir : http://www.the-eggman.com/seminars/html_error_codes.htm )

Quelqu'un a une idée ?

Merci de m'avoir lu.

Cordialement,

Nicolas


Bonjour,


Merci pour votre réponse avez vous essayé les liens que j'ai posté et
vérifié l'adresse du navigateur une fois l'image affichée ?

Les liens pointent vers des images je les vois mal elles mêmes pointer
vers d'autres images...

Cordialement,

Nicolas

Daniel.C
Le #5388111
Merci pour votre réponse avez vous essayé les liens que j'ai posté et
vérifié l'adresse du navigateur une fois l'image affichée ?

Les liens pointent vers des images je les vois mal elles mêmes pointer
vers d'autres images...

Quand le serveur web (www.kalidil.com) dans ton exemple, reçoit ta demande
d'adresse, il redirige cette demande vers la nouvelle adresse (c'est à dire
la nouvelle image) qu'il affiche. Il n'y a aucune erreur à détecter, il
s'agit d'une commande au niveau de ce serveur.
Sauf à pouvoir récupérer l'adresse affichée, je ne vois pas comment tu
pourras détecter le changement.
Daniel
Francois L
Le #5388091

Bonjour,

Pour aller dans le même sens que la dernière réponse de Daniel, il doit
bien s'agir d'une redirection par le serveur de 66 vers 60. Il suffit de
taper une adresse avec le numéro 56 (n'existe pas) pour constater que
l'on a une erreur alors que l'image 50 existe.

--
François L

Bonjour.
Si le serveur ne retourne pas d'erreur, c'est que le lien existe, mais
qu'il redirige vers une autre adresse. Il n'y a donc pas d'erreur du
tout, mais redirection.
Cordialement.
Daniel
"Nicolas C."
Bonjour,

J'ai découvert ce forum il y a peu grâce au site jacxl.free.fr j'espère
pouvoir y échanger beaucoup d'informations avec vous tous.

Voila mon problème :

Je cherche à vérifier des liens via excel, j'ai repris le code présent
sur jacxl.free.fr et l'ai modifié à ma sauce ;) Cela fonctionne...
presque !

Les adresses que je veux vérifiées ne provoque pas d'erreur "grave" si
elle n'existent pas, IE ou Firefox remplace automatiquement le nom de
fichier par un autre approchant sans afficher de page d'erreur !

Exemple :
"http://www.kalidil.com/images_produit/3XXV66.jpg" (cette image n'est
pas présente sur le serveur)

sera remplacée automatiquement par

"http://www.kalidil.com/images_produit/3XXV60.jpg" (image bien présente
sur le serveur)

sans laisser aucun message d'erreur .

Je pense que c'est cela qui empêche le code VBA de vérification de
signaler le problème.

Voila le code de ma macro :

Private Declare Function OuvreInternet Lib "wininet" Alias
"InternetOpenA" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal
sProxyName _
As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As
Long
Private Declare Function InternetOpenUrl Lib "wininet" Alias
"InternetOpenUrlA" _
(ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal
lpszHeaders As String, _
ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal
dwContext As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal zaza
As Long) As Integer

Sub Test_page_Web_2()
For Counter = 2 To 500
Set URL_à_tester = Worksheets("listing TL").Cells(Counter, 12)
internet_ouvert = OuvreInternet("Test_validité", 1, vbNullString,
vbNullString, 0) 'ouvre Internet
numURL = InternetOpenUrl(internet_ouvert, URL_à_tester, vbNullString, _
ByVal 0&, &H80000000, ByVal 0&) 'ouvre la page Web
If numURL > 0 Then Worksheets("données").Cells(Counter, 9).FormulaR1C1 >> "OK" _
Else Worksheets("données").Cells(Counter, 9).FormulaR1C1 =
URL_à_tester
InternetCloseHandle numURL 'ferme la page
InternetCloseHandle internet_ouvert 'ferme Internet
Next Counter
End Sub

Je me demandais donc si il était possible de vérifier quel code HTML
renvoyai la page testée et si on pouvais faire une vérification a partir
de cela (voir : http://www.the-eggman.com/seminars/html_error_codes.htm)

Quelqu'un a une idée ?

Merci de m'avoir lu.

Cordialement,

Nicolas


Bonjour,


Merci pour votre réponse avez vous essayé les liens que j'ai posté et
vérifié l'adresse du navigateur une fois l'image affichée ?

Les liens pointent vers des images je les vois mal elles mêmes pointer
vers d'autres images...

Cordialement,

Nicolas



Nicolas C.
Le #5388061

Bonjour,

Pour aller dans le même sens que la dernière réponse de Daniel, i l doit
bien s'agir d'une redirection par le serveur de 66 vers 60. Il suffit d e
taper une adresse avec le numéro 56 (n'existe pas) pour constater que
l'on a une erreur alors que l'image 50 existe.

Bonjour,


J'ai appelé l'hébergeur, donc en fait il y a un une fonction automati que
sur le serveur qui permet d'afficher la page la plus approchante en cas
d'erreur 404, je l'ai désactivé par un .htaccess CheckSpelling off
(merci l'assistance) .

Cependant ! parce que j'aime bien les problèmes, cela ne règle pas to ut
voir rien.

En effet le lien : http://www.kalidil.com/images_produit/3XXV66.jpg
affiche désormais erreur 404 cependant l'erreur n'est pas reconnue par
le code VBA de et le lien apparait comme correct :(.

Merci encore pour vos réponses.

Cordialement,

Nicolas

Daniel.C
Le #5388021
Ca ne va pes être simple, car la page qui s'affiche n'est pas la page
d'erreur standard, mais une page customisée par le site web, donc une page
aussi normale que celle qui s'affichait auparavant..
Daniel
"Nicolas C." %

Bonjour,

Pour aller dans le même sens que la dernière réponse de Daniel, il doit
bien s'agir d'une redirection par le serveur de 66 vers 60. Il suffit de
taper une adresse avec le numéro 56 (n'existe pas) pour constater que l'on
a une erreur alors que l'image 50 existe.

Bonjour,


J'ai appelé l'hébergeur, donc en fait il y a un une fonction automatique
sur le serveur qui permet d'afficher la page la plus approchante en cas
d'erreur 404, je l'ai désactivé par un .htaccess CheckSpelling off
(merci l'assistance) .

Cependant ! parce que j'aime bien les problèmes, cela ne règle pas tout
voir rien.

En effet le lien : http://www.kalidil.com/images_produit/3XXV66.jpg
affiche désormais erreur 404 cependant l'erreur n'est pas reconnue par
le code VBA de et le lien apparait comme correct :(.

Merci encore pour vos réponses.

Cordialement,

Nicolas

Nicolas C.
Le #5387931
Ca ne va pes être simple, car la page qui s'affiche n'est pas la page
d'erreur standard, mais une page customisée par le site web, donc une page
aussi normale que celle qui s'affichait auparavant..
Daniel
"Nicolas C." %

Bonjour,

Pour aller dans le même sens que la dernière réponse de Daniel, il doit
bien s'agir d'une redirection par le serveur de 66 vers 60. Il suffit de
taper une adresse avec le numéro 56 (n'existe pas) pour constater qu e l'on
a une erreur alors que l'image 50 existe.

Bonjour,


J'ai appelé l'hébergeur, donc en fait il y a un une fonction automa tique
sur le serveur qui permet d'afficher la page la plus approchante en cas
d'erreur 404, je l'ai désactivé par un .htaccess CheckSpelling off
(merci l'assistance) .

Cependant ! parce que j'aime bien les problèmes, cela ne règle pas tout
voir rien.

En effet le lien : http://www.kalidil.com/images_produit/3XXV66.jpg
affiche désormais erreur 404 cependant l'erreur n'est pas reconnue pa r
le code VBA de et le lien apparait comme correct :(.

Merci encore pour vos réponses.

Cordialement,

Nicolas






Effectivement Daniel.C, j'ai rappelé l'hébergeur pour dépersonalise r la

page d'erreur : ils ne le font pas. Donc sur cette piste la, c'est fichu.

Si un As de VBA est capable de modifier le code de en utilisant les
instructions du code ci dessous ca devrai passer... pour ma part j'en
suis incapable pour le moment.

http://files.codes-sources.com/fichier.aspx?id221&f=Form1.frm


Cordialement

Nicolas


Publicité
Poster une réponse
Anonyme