• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

controleren van hyperlinks die ook weer geen hyperlink zijn

Status
Niet open voor verdere reacties.

tomkuijpers

Gebruiker
Lid geworden
6 nov 2008
Berichten
48
Ik heb een bestand gemaakt met aardig wat hyperlinks op de volgende manier

=HYPERLINK("\\Xena\sil\Festo\164274 Angeld Plug Socket\164274-Data-sheet-EN.pdf")
het is geen directe hyerlink maar hij functioneerd als een hyperlink

mijn vraag is kan ik op een makkelijke manier zien welke van de vele links niet meer werkt...
want allemaal handmatig aanklikken duurt me te lang.

de links staan verspreid over de kolommen AQ t/m BA
met hier en daar een lege cel of een cel met een spatie omdat de link anders doorliep buiten de cel....

deze macro had ik gevonden maar die ziet mijn links niet...

Sub Excellinks()
For Each hl In ActiveSheet.hyperlinks
If Dir(hl.Address) = "" Then MsgBox hl.Address & " bestaat niet"
End If
Next
End Sub

zelf ben ik niet zo goed met macros dus vraag ik me af of iemand hier me kan helpen.:thumb:
 
Laatst bewerkt:
Zo?

Code:
Sub Excellinks()
Dim hl As Hyperlink
    For Each hl In ActiveSheet.Hyperlinks
        If Dir(hl.Address) = "" Then MsgBox hl.Address & " bestaat niet"
    
    Next
End Sub

Met vriendelijke groet,


Roncancio
 
Hey Roncancio,


bedankt dat je tijd aan mijn probleem besteed :D

die macro had ik dus ook al gevonden maar dan ziet hij de links niet
ik denk omdat ze niet met de hyperlink functie zijn aangemaakt ...

alle links zijn dus op die manier...
=HYPERLINK("\\Xena\sil\Festo\164274 Angeld Plug Socket\164274-Data-sheet-EN.pdf")

en de macro ziet het niet als een linkje ook al functioneerd hij wel als link :eek:

de macro ipv naar hl's te zoeken het op een andere manier te doen ?

dus dat als een cel =HYPERLINK(" bevat dan kijk of het adress bestaat

Gr Tom
 
Als ik een hyperlink aanmaak via =HYPERLINK("pad";"tekst") ziet de macro (die ik aangepast heb) of het een geldige hyperlink is ja of nee.
De hyperlink werkt dus en mocht dat niet zo zijn, omdat de padverwijzing niet goed is, dan kan de macro dat vinden.

Met vriendelijke groet,


Roncancio
 
Als ik een hyperlink aanmaak via =HYPERLINK("pad";"tekst") ziet de macro (die ik aangepast heb) of het een geldige hyperlink is ja of nee.

welke macro is dat deze ?
Code:
Sub Excellinks()
Dim hl As Hyperlink
    For Each hl In ActiveSheet.Hyperlinks
        If Dir(hl.Address) = "" Then MsgBox hl.Address & " bestaat niet"
    
    Next
End Sub

want die werkt bij mij niet hoor:confused:

Gr Tom
 
welke macro is dat deze ?
Code:
Sub Excellinks()
Dim hl As Hyperlink
    For Each hl In ActiveSheet.Hyperlinks
        If Dir(hl.Address) = "" Then MsgBox hl.Address & " bestaat niet"
    
    Next
End Sub

want die werkt bij mij niet hoor:confused:

Gr Tom

Een hyperlink die aangemaakt is via CTRL-K kan wel gevonden worden maar hyperlinks via de functie Hyperlink zo te zien niet.

Met vriendelijke groet,


Roncancio
 
Hey,

hmm sja zo heb ik dus alle hyperlinks aangemaakt hmmm

ik had net ook nog eerst deze macro laten runnen zodat alles wel een goede hyperlink werd maar ook zo zag hij ze niet :eek:


dus eerst deze
Code:
Sub Hyperlink_Activeren()
    Dim rng As Range
    For Each rng In Selection.Cells
        ActiveSheet.hyperlinks.Add Anchor:=rng, Address:=rng.Value, TextToDisplay:=rng.Text
    Next rng
End Sub

en daarna er met deze macro overheen
Code:
Sub Excellinks()
Dim hl As hyperlink
    For Each hl In ActiveSheet.hyperlinks
        If Dir(hl.Address) = "" Then MsgBox hl.Address & " bestaat niet"
    
    Next
End Sub

maar ook dan zie ik nog steeds niets :confused:

Groeten Tom
 
Het declareren van variabelen die door VBA automatisch goed gedimensioneerd worden (in for each) is overbodig.

Code:
Sub bev()
  For Each cl In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
    If InStr(cl.Formula, "HYPERLINK") > 0 Then
      If Dir(Left(Replace(cl.Formula, "=HYPERLINK(", ""), InStr(cl.Formula, ",") - 12)) = "" Then MsgBox "De hyperlink in " & cl.Address & " bestaat niet"
    End If
  Next
End Sub
 
Hey

met die formule gaat hij alle cellen langs met een link dat is goed :thumb:

Code:
Sub bev()
  For Each cl In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
    If InStr(cl.Formula, "HYPERLINK") > 0 Then
      If Dir(Left(Replace(cl.Formula, "=HYPERLINK(", ""), InStr(cl.Formula, ",") [COLOR="Red"]- 12[/COLOR])) = "" Then MsgBox "De hyperlink in " & cl.Address & " bestaat niet"
    End If
  Next
End Sub


waarom staat de -12 er ? als ik hem weg haal werkt de formule met de -12 niet

maar hij ziet nog steeds alle linkjes als een foute link
dus iets klopt er niet maar kan er niet achterkomen wat :mad:

ik heb ook nog is gebrobeerd met sommige normale linkjes met ctrl+k maar ook die ziet ie niet...

dus ik zou het niet weten het begin is er :)
 
Code:
als ik hem weg haal werkt de formule met de -12 niet
Dan staat die daar waarschijnlijk niet voor niets. Langzaam lezen en je komt erachter waarom.

Als het adres in de hyperlink niet met een drive (A t/m Z) begint kan de methode Dir geen bestand vinden.
 
Code:
als ik hem weg haal werkt de formule met de -12 niet
Dan staat die daar waarschijnlijk niet voor niets. Langzaam lezen en je komt erachter waarom.

Als het adres in de hyperlink niet met een drive (A t/m Z) begint kan de methode Dir geen bestand vinden.

vandaar ^^ okey dan zal ik daar is naar gaan zoeken want al mijn links gaan naar het netwerk en dat begint allemaal met \\ dus dan vind hij niets :confused:

hoe maak ik dan de nieuwe code zodat hij hem wel ziet...... curdir ?


Gr Tom
 
Laatst bewerkt:
Hey,

ik heb een een voorbeeld bestandje
hierin wil ik graag dat de hyperlinks automatisch worden gecontroleerd
dus of de link_lacation nog klopt

ik heb zelf al veel geprobeerd maar ben er nog niet uit ...

Gr Tom
 

Bijlagen

Bij deze een werkende versie. Je moet wel een referentie naar Microsoft scripting runtime aanzetten, staat gelinkt in voorbeeld bestand. Ik bouw de link stap voor stap op, dit kan uiteraard in één regel, maar dit is wellicht duidelijker voor je.
Code:
Sub linkcheck()
  Dim strLink As String
  Dim cl As Range
  Dim fso As New FileSystemObject
  For Each cl In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
    If InStr(cl.Formula, "HYPERLINK") > 0 Then
      strLink = Replace(cl.Formula, "=HYPERLINK(", "")
      strLink = Mid(strLink, 2, Len(strLink) - 2)
      If Not fso.FileExists(strLink) Then
        MsgBox "De hyperlink " & strLink & " in " & cl.Address & " bestaat niet"
      End If
    End If
  Next
End Sub
En het niet declareren van variabelen is slordig, dat kan alleen maar tot extra fouten leiden.
 

Bijlagen

Hey rene

ik heb je bestandje gepakt daarin geprobeerd maar de code werkt niet
hij ziet alles nog steeds als een niet bestaande hyperlink
maar als ik er op klik werkt de link gewoon dus dat is raar...

Gr Tom
 
Sorry, mijn fout (kon 'm hier niet testen omdat ik jouw server hier niet hebt staan uiteraard

Code:
strLink = Mid(strLink, 2, Len(strLink) - 2)
even aanpassen in
Code:
strLink = Mid(strLink, 2, Len(strLink) - 3)
Dat is 'm volgens mij
 
super bedankt :D

nog een kleine vraag je had dit gedaan in test doc
Bij deze een werkende versie. Je moet wel een referentie naar Microsoft scripting runtime aanzetten, staat gelinkt in voorbeeld bestand..

waar kan ik dat aanzetten ?

nog maals thx voor het script :thumb::D
 
In de VBA editor, Menu Extra, Verwijzingen (Tools, References)
 
Hey

super bedank voor de hulp tot zo ver :thumb:

hij doet het nu bijna helemaal goed
alleen linkjes met friendly name pakt hij nog niet ;)


de formule die ik nu grebruik is:

Code:
Sub linkcheck()
  Dim strLink As String
  Dim cl As Range
  Dim fso As New FileSystemObject
  For Each cl In Selection.Cells.SpecialCells(xlCellTypeFormulas)
    If InStr(cl.Formula, "HYPERLINK") > 0 Then
      strLink = Replace(cl.Formula, [COLOR="Red"]"=HYPERLINK(", "")[/COLOR]
      strLink = Mid(strLink, 2, Len(strLink) - 3)
      If Not fso.FileExists(strLink) Then
        MsgBox "De hyperlink " & strLink & " in " & cl.Address & " bestaat niet"
      End If
    End If
  Next
  [COLOR="SeaGreen"]MsgBox "Checked All"[/COLOR]
End Sub


ik zelf denk dat dit stukje anders moet "=HYPERLINK(", "")
maar kom er niet uit hoe je de friendly name er in gebreid krijgt
dus dat hij dat negeerd en alleen de linklocation gebruikt.

ook heb ik een klein extra msgBox er in gezet zodat je zeker weet dat hij gedraaid heeft

Gr Tom
 
Laatst bewerkt:
Hallo,

heeft er iemand een idee hoe je dan ook de linkjes met een friendly name kan checken ?

en ik heb nog een vraagje

Code:
MsgBox "De hyperlink " & strLink & " in " & cl.Address & " bestaat niet"

die heb ik hem gewijzigd naar

Code:
MsgBox "De hyperlink in " & cl.column & cl.row " bestaat niet"

dat deed hij nog goed maar ik zou graag ipv de column de tekst uit het de eerste cel van de column willen zien:shocked:

alvast bedankt

Gr Tom
 
hey

ik zal mijn vraag nog is wat uitgebreider vragen ;)

ik het voglende bestand ( zie bijlage)

daarin heb ik 2 soorten links

1) =HYPERLINK("\\Xena\sil\gegevens\test.pdf","Page 15")

2) =HYPERLINK("\\Xena\sil\\gegevens\test.pdf")


ik gebruik de volgende macro:
Code:
Sub linkcheck()
  Dim strLink As String
  Dim cl As Range
  Dim fso As New FileSystemObject
  For Each cl In Selection.Cells.SpecialCells(xlCellTypeFormulas)
    If InStr(cl.Formula, "HYPERLINK") > 0 Then
      strLink = Replace(cl.Formula, "=HYPERLINK(", "")
         strLink = Mid(strLink, 2, Len(strLink) - 3)
      If Not fso.FileExists(strLink) Then
        MsgBox "De hyperlink in" & cl.Row & " - " & cl.Column & " bestaat niet"
      End If
    End If
  Next
  MsgBox "Checked All"
End Sub

met die formule zie je hyperlink 1 niet maar de 2de wel
weet iemand hier hoe je de macro moet maken zodat je ze beide kan controleren ?


Ik hoop dat iemand mij hier mee kan helpen :D
als je mijn excel bestandje gebruikt kun je miss 4 linkjes maken op je eigen pc
- dus naar een excel bestand zonder friendly name die werkt een die niet werkt
- en een met friendly name die werkt en een die niet werkt ;)
want mijn hyperlinks werken niet bij jullie ^^



en dan nog een vraagje over de msgbox
MsgBox "De hyperlink in " & cl.row & cl.column " bestaat niet"

ik zou dan graag ipv cl.column het volgende willen zien
de gegevens uit de eerste row van van de active column als dat kan en anders de Letter van de column en niet een cijfer ...

al vast bedankt

Gr Tom
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan