testen of een hyperlink werkt

Status
Niet open voor verdere reacties.

jofred

Gebruiker
Lid geworden
16 dec 2006
Berichten
172
Ik onderhoud een overzicht met verwijzingen naar bestanden van anderen. Nu is het van belang dat ik tijdig kan singaleren, wanneer een bestand waarna wordt verwezen niet meer aanwezig is.
Voor bestanden die op het netwerk staan werkt de volgende door mij geschreven functie in Excel:

Code:
Function BestaatBestand(strBestandsnaam As String, blnNaamVolledig As Boolean, _
                        Optional strPad As String)
'
' Functie om te bepalen of een opgegeven bestand bestaat
' Het is mogelijk om te testen op een volledige bestandsnaam incl. pad
' maar ook op de gescheiden velden bestandsnaam en pad
' Als er geen pad wordt opgegeven, dan wordt gekeken of het opgegeven bestand
' bestaat in de map, waarin het excel-bestand is opgeslagen.
' De aangeroepen functie afkappen regelt het afkappen van een string op een opgegeven teken

Dim i As Integer

' Bestandsnaam en pad scheiden
If blnNaamVolledig = True Then
    If strPad = "" Then
       strPad = Mid(strBestandsnaam, 1, Len(strBestandsnaam) _
                - Len(modFuncties.Afkappen(strBestandsnaam, "\", "E")))
    End If
    strBestandsnaam = Mid(strBestandsnaam, Len(strPad) + 1)
Else
    If strPad = "" Then
        strPad = ThisWorkbook.Path
    End If
End If

With Application.FileSearch
        .LookIn = strPad
        .FileName = strBestandsnaam
                If .Execute > 0 Then 'bestand bestaat
                        BestaatBestand = "Bestand bestaat"
                Else 'het bestand bestaat niet
                        BestaatBestand = "Bestand bestaat niet"
                End If
End With
End Function

Echter voor bestanden die op het intranet staan, werkt de functie niet.

Vraag: op welke wijze kan ik vaststellen dat de bestandsverwijzing naar intranetbestanden nog correct is?
 
Vergeet die funktie en gebruik

in Excel:
Code:
Sub Excellinks()
  For Each hl In ActiveSheet.Hyperlinks
    If Dir(hl.Address) = "" Then msgbox  hl.address & " bestaat niet"
  Next
End Sub

In Word
Code:
Sub Wordlinks()
  For Each hl In ActiveDocument.Hyperlinks
    If Dir(hl.Address) = "" Then msgbox  hl.address & " bestaat niet"
  Next
End Sub
 
Laatst bewerkt:
Beste snb,

Hartelijk dank voor je reactie.
Ik begrijp even niet wat je met de functiedefinitie BestaatBestand bedoeld, de andere code kan ik plaatsen.
Het is echter niet helemaal wat ik zoek. Even los van wat syntax-fouten, opent de procedure (in combinatie met de functie hyperlinktest) bij een bestaande hyperlink het betreffende document en dat is niet de bedoeling.
Ik wil alleen maar vaststellen of het document waarna verwezen wordt nog bestaat, het document mag niet worden geopend.
 
Beste snb,

Als ik de procedure Excellinks uitvoer in een bestand met hyperlinks, strandt hij op de foutmelding "Fout 52 tijdens de uitvoering: Ongeldige bestandsnaam of ongeldig bestandsnummer". Ik weet zeker dat de hyperlinks goed zijn, dus ik verwachte geen melding.

Even voor de duidelijkheid ik werk met Excel 2003 en als verwijzingen zijn geactiveerd:
- Visual Basic For Applications
- Microsoft Excel 11.0 Library
- OLE Automation
- Microsoft Office 11.0 Library
- Microsoft Scripting Runtime

Nog suggesties waardoor de fout wordt veroorzaakt?
 
In de bijlage een excel-blad met drie links.
De eerste 2 verwijzen naar bestaande bestanden, de derde is fout.

Laat de macro Excellinks lopen.
Bij mij geen foutmeldingen.
 

Bijlagen

snb

Ik heb je de procedure in je bestand getest en hij wekt wel bij hyperlinks die naar netwerkbestanden verwijzen, maar niet voor hyperlinks die verwijzen naar een intranetpagina of bestanden die in het intranet hangen.
Weet je nog een oplossing voor de laatste categorie bestanden?
 
Zet hier een aantal voorbeelden van adressen van intranetbestanden.
 
Ik heb nog geen reactie gehad op mijn laatste post, moet ik daaruit afleiden dat mijn probleemstelling onoplosbaar is.
Dat wil er eigenlijk bij mij niet in, want er is geen probleem zo groot of er is wel een oplossing voor :D

Ben ik nu echt aan de grenzen van de mogelijkheden van Excel/VBA toegekomen?:(
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan