Tester la validité des liens hypertextes

Fermé
seblg29 - Modifié le 8 nov. 2018 à 11:37
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 8 nov. 2018 à 11:44
Bonjour,

Je souhaiterais mettre en place une maccro qui me permettrait de tester la validité de mes liens hypertextes.
J'ai déjà pu construire ce petit script, cependant, il ne fonctionne pas comme je le souhaiterais.
En effet, je souhaiterais qu'il m'affiche en rouge les liens hypertexte qui renvoient vers des dossiers de fichiers, et lorsque le liens renvoi également un objet (doc, xlsx, pdf...).
En revanche, ici il me renvoi une cellule rouge lorsqu'un lien hypertexte est present dans la cellule, et ceux même si celui-ci n'est pas valide. De plus, il me renvoi une cellule blanche si le lien renvoi vers un objet (doc, xlsx, pdf...).

Sub control()
 
Dim sht As Worksheet, rng As Range
Set sht = ThisWorkbook.Worksheets("D18")
For Each rng In sht.Range("D30:G35")
    With rng
         If rng.Hyperlinks.Count > 0 Then
            If Dir(rng.Hyperlinks(1).Address) <> "" Then
                .Interior.Color = vbWhite
           Else: .Interior.Color = vbRed
            End If
         End If
    End With
Next rng
End Sub


EDIT : Ajout des balises de code

Auriez vous des solutions à mon problème ?
Vous en remerciant par avance,
Cordialement,
A voir également:

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié le 8 nov. 2018 à 11:44
Bonjour,

Pour tester si ton chemin est une directory
If Len(Dir("rng.Hyperlinks(1).Address", vbDirectory)) = 0 Then
  ' ce n'est pas un répertoire et/ou le chemin n'existe pas
End If


Pour tester si le chemin existe ( fichier ou dossier)
If Len(Dir("rng.Hyperlinks(1).Address")) = 0 Then
  ' chemin non valide
End If

</code>




0