Macro pour détecter des lien hyper texte mort

link93

XLDnaute Occasionnel
Bonjour à tous,

Je vous écris afin de savoir si il est possible via une macro de pouvoir détecter si des liens hypertexte présent sur une feuille excel sont mort ou non. Par mort j'entends qu'il ne renvoi plus vers un document,adresse..... donnée.

Je sais pas trop si c'est réalisable mais si vous avez d'autre options pourquoi pas.
Merci pour votre aide ^^.
 

JNP

XLDnaute Barbatruc
Re : Macro pour détecter des lien hyper texte mort

Bonsoir Link93 :),
Question un peu vaste :rolleyes:...
Quelle sorte de liens hypertexte :confused: ?
Internet, adresse email, fichier, cellule ?
La collection de liens en VBA est Hyperlinks, donc tu peux décrire la collection avec
Code:
Dim h As Hyperlink
For Each h In ActiveSheet.Hyperlinks
MsgBox h.Name
Next
Maintenant, avec de la détection d'erreur, en utilisant Follow, tu devrais détecter les adresses non valides pour les fichiers et les cellules, pour le reste, ça me parrait plus compliqué :rolleyes:...
Bon courage :cool:
 

link93

XLDnaute Occasionnel
Re : Macro pour détecter des lien hyper texte mort

Re,

Je vais préciser un peu ce que j'entends par liens hypertextes, En faite j'ai un fichier excel qui fait référence à des documents présents sur un intranet, mais je fais aussi parfois à des références à des emplacements de l'intranet et non plus à des documents spécifiques. Pense tu que c'est faisable ?
 

JNP

XLDnaute Barbatruc
Re : Macro pour détecter des lien hyper texte mort

Re :),
Il me semble (mais je n'utilise pas les liens Hypertexte en général) que l'ouverture d'un lien erroné sur un serveur va déclencher un message d'erreur que tu peux gérer pour supprimer le lien. Par contre, un lien intranet va utiliser le navigateur par défaut, et je ne vois pas trop comment récupérer le message d'erreur du navigateur :eek:...
Bon courage :cool:
 

link93

XLDnaute Occasionnel
Re : Macro pour détecter des lien hyper texte mort

Bonjour,

J'ai fais un essai sur des liens hypertextes qui renvoi sur des documents présents dans un réseau et ton code me stipule bien quels sont les liens existants mais pas ceux qui ne son plus valide (j'ai fais le test en déplacent sur un autre répertoire un fichier).

Aurais je loupé une étape ?

Merci encore pour votre aide.
 

JNP

XLDnaute Barbatruc
Re : Macro pour détecter des lien hyper texte mort

Re :),
C'était uniquement pour te montrer comment décrire la collection :p...
Je pensais plutôt à quelque chose du type
Code:
Sub test()
Dim h As Hyperlink
For Each h In ActiveSheet.Hyperlinks
On Error GoTo Erreur
h.Follow
GoTo Fin
Erreur:
MsgBox h.Name
Fin:
Next
End Sub
Ça fonctionne mais ce n'est pas l'idéal :eek:...
Bon courage :cool:
 

link93

XLDnaute Occasionnel
Re : Macro pour détecter des lien hyper texte mort

Re,

je viens d'essayer ton code et je sens qu'on se rapproche de l'objectif ^^, ton code permet de vérifier tous les liens mais ouvre aussi l’ensemble des documents qui sont rattacher à ces liens j'aimerais savoir si il est faisable de ne signaler que ce qui sont détecter comme mort ou ne référant plus à rien (si cela est possible).

Le mode de signalisation importe peu même une indication visuel (remplissage de la cellule concerné suffirait)

Merci encore
 

JNP

XLDnaute Barbatruc
Re : Macro pour détecter des lien hyper texte mort

Re :),
En ce qui me concerne, je suis au bout de mes connaissances avec les Hyperliens :eek:...
Je t'avais bien dit que ce n'était pas idéal (même si ça fonctionne) :p...
Mais finalement, après réflexion, je crois que j'ai trouvé quelque chose :p...
Code:
Sub test()
Dim h As Hyperlink, MyFile
For Each h In ActiveSheet.Hyperlinks
MyFile = Dir(h.Address)
If MyFile = "" Then MsgBox h.Name
Next
End Sub
Qu'en penses-tu :rolleyes: ?
Bonne soirée :cool:
 

link93

XLDnaute Occasionnel
Re : Macro pour détecter des lien hyper texte mort

re,

Ton code marche très bien pour des fichiers présents sur un réseau et je te remercie pour le temps que tu y as consacré :).

Je vais continuer à cherche voir ce que je peux trouver concernant des liens faisant références à une intranet et vous tient au courant si ça abouti ^^.
 

link93

XLDnaute Occasionnel
Re : Macro pour détecter des lien hyper texte mort

Bonjour à tous,

Je reviens vers vous après quelque recherche je suis tombé sur le site "http://jacxl.free.fr/cours_xl/cours_xl_jac.html#test_web" qui à crée une macro qui vérifie l'url d'une page web.

code :

Sub Test_page_Web_1()
URL_à_tester = InputBox("URL à tester ?", "validité de l'adresse Internet", "http://boursorama.fr")
On Error GoTo Err
Set fich = Workbooks.Open(URL_à_tester)'ouvre l'URL
fich.Close (False) 'ferme l'URL
MsgBox "l'URL " & URL_à_tester & " est valide"
Exit Sub
Err:
MsgBox "l'URL " & URL_à_tester & " ne peut pas être ouvert"
End Sub

ça fonctionne plutôt bien mais j'aurai aimé savoir si il était possible plutôt que de rentrer les adresses web une à une de faire référence à une colonne ou liste d'excel.

SI quelqu'un à la réponse je suis preneur ^^
 

Paritec

XLDnaute Barbatruc
Re : Macro pour détecter des lien hyper texte mort

bonjour link93
si tu nous mets un petit fichier avec ta liste on va te faire cela
a+
papou:)

EDIT: Re Jean Noël j'avais même pas vu que tu avais déjà mis une macro donc sujet clos.:)
 

link93

XLDnaute Occasionnel
Re : Macro pour détecter des lien hyper texte mort

Re,

Merci pour votre aide j'ai essayé mais je pense que j'ai du me planter à un moment dans le code. Je me permets de mettre un fichier en pièce jointe si vous pouvez jeter un coup d’œil je vous en serez reconnaissant ^^.

Pensez vous qu'en plus du msg d’alerte il est possible de remplir la cellule ou une une url est détecter comme une erreur ?

Voir cellule D6 et D9 dans le fichier.

Encore merci pour votre aide.
 

Pièces jointes

  • Test url.xls
    39 KB · Affichages: 197
  • Test url.xls
    39 KB · Affichages: 191
  • Test url.xls
    39 KB · Affichages: 192

link93

XLDnaute Occasionnel
Re : Macro pour détecter des lien hyper texte mort

Re,

j'ai trouvé ce code en passant par l'enregistrement des macro pour remplir une cellule mais je ne sais pas comment faire pour mettre une condition (que le lien soit déclarer comme non valide) ni même pour le compiler avec le reste du code :$.

SI quelqu'un le sait ^^ :

code :

Range("F10").Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub

Merci d'avance
 

JNP

XLDnaute Barbatruc
Re : Macro pour détecter des lien hyper texte mort

Re :),
Ton code modifié :p
Code:
Sub Test_page_Web_2()
Dim h As Hyperlink, I As Integer, J As Integer
I = 1
J = 1
For Each h In ActiveSheet.Hyperlinks
On Error GoTo ErrorHandler
Set fich = Workbooks.Open(h.Address) 'ouvre l'URL
fich.Close (False) 'ferme l'URL
Range("A" & I) = "l'URL " & h.Address & " est valide"
I = I + 1
Suite:
Next
Exit Sub
ErrorHandler:
Range("B" & J) = "l'URL " & h.Address & " ne peut pas être ouvert"
J = J + 1
Err.Clear
GoTo Suite
End Sub
Bon courage :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87