Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Vérification "poussée" liens sur excel

7 réponses
Avatar
Nicolas C.
Bonjour,

J'ai d=E9couvert ce forum il y a peu gr=E2ce au site jacxl.free.fr j'esp=E8=
re=20
pouvoir y =E9changer beaucoup d'informations avec vous tous.

Voila mon probl=E8me :

Je cherche =E0 v=E9rifier des liens via excel, j'ai repris le code pr=E9s=
ent=20
sur jacxl.free.fr et l'ai modifi=E9 =E0 ma sauce ;) Cela fonctionne... pr=
esque !

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

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

sera remplac=E9e automatiquement par

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

sans laisser aucun message d'erreur .

Je pense que c'est cela qui emp=EAche le code VBA de v=E9rification de=20
signaler le probl=E8me.

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=20
"InternetOpenUrlA" _
(ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal=20
lpszHeaders As String, _
ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal=20
dwContext As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal zaza=20
As Long) As Integer

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

Je me demandais donc si il =E9tait possible de v=E9rifier quel code HTML =

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

Quelqu'un a une id=E9e ?

Merci de m'avoir lu.

Cordialement,

Nicolas

7 réponses

Avatar
Daniel.C
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." a écrit dans le message de news:

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
Avatar
Nicolas C.
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." a écrit dans le message de news:

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

Avatar
Daniel.C
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
Avatar
Francois L

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." a écrit dans le message de news:

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



Avatar
Nicolas C.

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

Avatar
Daniel.C
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." a écrit dans le message de news:
%

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

Avatar
Nicolas C.
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." a écrit dans le message de news:
%

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