Links prüfen

  • Excel

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von hanssonny.

    Hi leute,

    ich habe eine Excel Tabelle mit ca 60000 Einträgen, jeder Dieser Einträge hat irgendwo einen Link zu einem PDF

    jetzt benötige ich ein Scirpt mit dem ich prüfen kann ob die Links okay sind, also ob sich wirklich ein PDF dahinter befindet, weil manchmal ist dies leider nicht der Fall

    grüße
    Excel Hyperlinks sind ja nicht zwingend Http Links.
    Das können auch Links zum FileSystem sein.

    Könntest du so einen Hyperlink mal posten?
    Sind die via Formel erstellt ?

    Im Grunde ist die Herangehensweise so:

    Alle Hyperlinks durchlaufen und via File.Exists() prüfen, ob die Datei im FileSystem existiert.
    Das ist meine Signatur und sie wird wunderbar sein!

    Visual Basic-Quellcode

    1. Option Explicit
    2. Sub CheckHyperlinks()
    3. Dim h As Hyperlink
    4. 'Entweder so (kein zusätzlicher Verweis nötig)
    5. Dim objFso As Object
    6. Set objFso = CreateObject("Scripting.FileSystemObject")
    7. 'oder so mit Verweis auf Microsoft Scripting Runtime
    8. Dim fso As New FileSystemobject
    9. 'In Arbeitsblatt 1 in diesem Beispiel
    10. For Each h In Worksheets(1).Hyperlinks
    11. If Not objFso.FileExists(h.Name) Then
    12. 'existiert nicht
    13. Else
    14. Debug.Print h.Name
    15. 'existiert
    16. End If
    17. Next
    18. End Sub
    Das ist meine Signatur und sie wird wunderbar sein!
    also das klappt so noch nicht wirklich ...


    ein pfad sieht so aus:

    0_42.1720.931-00\1_42.1720.300-00\42.1720.833-00_EA_-.pdf



    und es meldet mir jetzt 60000 mal existiert nicht ... aber da sind z.B. die ersten 10 die sicher gehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „hanssonny“ ()

    xtts02 schrieb:

    Du musst vor der Prüfung die Relativpfade in Absolutpfade umwandeln.
    okay und wie geht das?




    so hab ich den code bis jetzt:


    Habe es so probiert:



    Visual Basic-Quellcode

    1. Sub CheckHyperlinks()
    2. Dim h As Hyperlink
    3. Dim strActiveCell As String
    4. Dim objFso As Object
    5. Set objFso = CreateObject("Scripting.FileSystemObject")
    6. 'In Arbeitsblatt 1 in diesem Beispiel
    7. For Each h In Worksheets(1).Hyperlinks
    8. If Not objFso.FileExists(h.Name) Then
    9. 'existiert nicht
    10. strActiveCell = ActiveCell.Address
    11. Range(strActiveCell).Activate.Interior.Color = vbRed
    12. Else
    13. Debug.Print h.Name
    14. 'existiert
    15. End If
    16. Next
    17. End Sub

    hier kommt auch ein Fehler: Range(strActiveCell).Activate.Interior.Color = vbRed

    damit möchte ich die Zellenfarbe ändern

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hanssonny“ ()

    xtts02 schrieb:

    Visual Basic-Quellcode

    1. Dim relativePath = "subFolder\filename.ext"
    2. Dim folder = "C:\Test\mainFolder"
    3. Dim absolutePath = folder & "\" & relativePath
    4. If objFso.FileExists(absolutePath) Then
    5. ' ...
    6. End If
    also die ordnerstruktur ist so

    odner
    -excel datei
    - ornder
    - in diesem ordner sind beliebig viele ordner mit beliebig vielen unterordnern und überall befinden sich pdf's

    der linkname entspricht dem Pfad


    Kann mir niemand helfen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hanssonny“ ()

    also der code sieht wie folgt aus:


    Visual Basic-Quellcode

    1. Sub CheckHyperlinks()
    2. Dim h As Hyperlink
    3. Dim strActiveCell As String
    4. Dim objFso As Object
    5. Set objFso = CreateObject("Scripting.FileSystemObject")
    6. 'In Arbeitsblatt 1 in diesem Beispiel
    7. For Each h In Worksheets(1).Hyperlinks
    8. If Not objFso.FileExists(h.Name) Then
    9. 'existiert nicht
    10. ActiveCell.Interior.ColorIndex = 3
    11. Else
    12. Debug.Print h.Name
    13. 'existiert
    14. End If
    15. Next
    16. End Sub


    es läuft durch aber es wird nichts markiert....


    edit:

    also die markierung funktioniert aber es wird nur ein feld markiert und zwar das was ich anklicke, nicht die die nicht funktionieren?

    hat mir niemand ne lösung?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „hanssonny“ ()