Validation chemin d'acces hyperlink

Bonjour à tous.

J'ai une cellule dont la fonction est : =HYPERLINK(F1487, E1487)

La cellule E1487 renvoi à un chemin d'accès qui a comme valeur : file:///\\Log_Sondage\Bât_89_tableaux_cumulatifs_récup.pdf

Je cherche à valider si les hyperliens sont valides pour une feuille au complet (plus de 2000 cellules à valider). Les cellules à valider sont toutes dans la même colonne.

Comme la cellule ne contient pas l'hyperlien directement, une formule comme celle plus bas ne fonctionne pas.

Set wksHypLnks = ActiveSheet
Set wksBadHypLnks = ThisWorkbook.Worksheets.Add

wksBadHypLnks.Name = "BadHypLnks" _
& Right(wksBadHypLnks.Name, Len(wksBadHypLnks.Name) - 2)

For Each curHypLnk In wksHypLnks.Hyperlinks
If Dir(curHypLnk.address) = "" Then
iBadHypLnks = iBadHypLnks + 1
wksBadHypLnks.Cells(iBadHypLnks, 1) = curHypLnk.Range.address
End If
Next curHypLnk
Application.DisplayAlerts = False
If iBadHypLnks < 1 Then wksBadHypLnks.Delete
Application.DisplayAlerts = True
End Sub

Merci de votre support.

bonjour,

essaie ceci (non testé)

Sub aargh()
    Set wkshyplnks = ActiveSheet
    Set wksBadHypLnks = ThisWorkbook.Worksheets.Add
    wksBadHypLnks.Name = "BadHypLnks" _
    & Right(wksBadHypLnks.Name, Len(wksBadHypLnks.Name) - 2)
    dl = wkshyplnks.Cells(Rows.Count, "F").End(xlUp).Row
    For Each link In wksHyplinks.Cells(1, "F").Resize(dl, 1)
        If Dir(link.Value) = "" Then
            iBadHypLnks = iBadHypLnks + 1
            wksBadHypLnks.Cells(iBadHypLnks, 1) = link
        End If
    Next link
    Application.DisplayAlerts = False
    If iBadHypLnks < 1 Then wksBadHypLnks.Delete
    Application.DisplayAlerts = True
End Sub

Bonjour H2so4.

Ca ne fonctionne pas.

J'aimerais savoir ce que le d1 et le "F" réfère à quoi ?

MErci

re-bonjour,

J'aimerais savoir ce que le d1 et le "F" réfère à quoi ?

d1 est en fait dl pour dernière ligne de la colonne F

"F" réfère à la colonne F, colonne qui contient tes formules des hyperliens.

J'ai mis un i de trop dans cette instruction

    For Each link In wksHyplinks.Cells(1, "F").Resize(dl, 1)

ce doit être

    For Each link In wksHyplnks.Cells(1, "F").Resize(dl, 1)

Re-Bonjour h2so4

Après réflexion et analyse (désolé), il sera plus simple de valider si le path contenu dans la colonne F est valide.

Merci de ton support. Je vais me servir de ta formule dans un autre dossier.
Je vais galèrer un peu sur le code pour valider le path de l'ensemble de la colonne F

bonsoir,

Après réflexion et analyse (désolé), il sera plus simple de valider si le path contenu dans la colonne F est valide.

c'est précisément ce que fait la macro que je t'ai proposée.

Allo.

Il y a un bug dans la formule proposé au niveau de la portion: If Dir(link.Value) = "" Then

Sub aargh()
    Set wksHypLnks = ActiveSheet
    Set wksBadHypLnks = ThisWorkbook.Worksheets.Add
    wksBadHypLnks.Name = "BadHypLnks" _
    & Right(wksBadHypLnks.Name, Len(wksBadHypLnks.Name) - 2)
    dl = wksHypLnks.Cells(Rows.Count, "B").End(xlUp).Row
    For Each link In wksHypLnks.Cells(1, "B").Resize(dl, 1)
        If Dir(link.Value) = "" Then
            iBadHypLnks = iBadHypLnks + 1
            wksBadHypLnks.Cells(iBadHypLnks, 1) = link
        End If
    Next link
    Application.DisplayAlerts = False
    If iBadHypLnks < 1 Then wksBadHypLnks.Delete
    Application.DisplayAlerts = True
End Sub

Merci

Bonsoir,

bug ? Y a-t-il un message d'erreur ? ou s'agit d'autre chose ? dans les 2 cas, plus d'infos sont nécessaires.

Rechercher des sujets similaires à "validation chemin acces hyperlink"