Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1224to1228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfung, ob es sich um eine gültige Internetseite

Prüfung, ob es sich um eine gültige Internetseite
Sebi

Hallo zusammen,
wollte folgendes Makro einsetzen. Leider funktioniert dies nicht bei mir. Wenn ich das Marko ausführe erscheint folgender Laufzeitfehler: Fehler beim Kompilieren. Außerhalb einer Prozedur ungültig.
Hier noch das Makro:
StandardModule: Modul1

Sub CheckHyperlinks()
Dim itc As Inet
Dim ws As Worksheet
Dim hyp As Hyperlink
Set itc = New Inet
With itc
.Protocol = icHTTP
.RequestTimeout = 5
End With
On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
For Each hyp In ws.Hyperlinks
If Len(itc.OpenURL(hyp.Address, icString)) Then
hyp.Parent.Interior.ColorIndex = _
xlColorIndexNone
Else
hyp.Parent.Interior.ColorIndex = 3
End If
Next hyp
Next ws
On Error GoTo 0
Set itc = Nothing
End Sub

Danke schonmal für Eure Hilfe.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Prüfung, ob es sich um eine gültige Internetseite
29.08.2011 20:39:55
Josef

Hallo Sebi,
probier es mal so.
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub checkLink()
  Dim objSh As Worksheet
  Dim objLink As Hyperlink
  
  For Each objSh In ThisWorkbook.Worksheets
    For Each objLink In objSh.Hyperlinks
      If TypeOf objLink.Parent Is Range Then
        If objLink.Address Like "http*" Then
          objLink.Range.Interior.ColorIndex = _
            IIf(getResponseHeaderStatus(objLink.Address) = 200, xlNone, 3)
        End If
      End If
    Next
  Next
End Sub



Private Function getResponseHeaderStatus(ByVal url As String, Optional ByVal asText As Boolean = False) As Variant
  Dim objHttpRequest As Object, lngStatus As Long
  
  Set objHttpRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
  
  On Error Resume Next
  With objHttpRequest
    .Open "GET", url
    .Send
    getResponseHeaderStatus = IIf(asText, .StatusText, .Status)
  End With
  On Error GoTo 0
  
  Set objHttpRequest = Nothing
End Function



« Gruß Sepp »

Anzeige
AW: Prüfung, ob es sich um eine gültige Internetseite
30.08.2011 08:10:40
Sebi
Hallo Josef,
es kommt auch hier die gleiche Fehlermeldung: Fehler beim Kompilieren. Außerhalb einer Prozedur ungültig.
Wenn ich in den Editor gehe ist der Kopf "Sub CheckLink" gelb unterlegt.
Muss ich beim angegebenen Code noch die zu verwendete Spalte angeben oder sonst noch irgendetwas beachten?
In Sepps Code steht nichts außerhalb einer...
30.08.2011 10:27:04
Luc:-?
…Prozedur, Sebi!
Bist du dir sicher, dass du alles richtig übertragen hast und nicht noch andere PgmZeilen vorkommen, die diesen Fehler verursacht haben könnten? Mitunter tritt der gelbe Balken nämlich erst dann auf, wenn etwas Neues beginnt, was hier nach dem bisherigen Kompilierungsverlauf nicht stehen dürfte. Damit wäre es beinahe ein Zufall, dass der Subroutinenkopf markiert wird und der Wurm steckt ganz woanders drin. Gehe einfach alles schrittweise durch!
Gruß Luc :-?
Anzeige
AW: Prüfung, ob es sich um eine gültige Internetseite
30.08.2011 13:53:59
Sebi
Erstmal danke für eure Hilfe.
Ok, hab es zum laufen gebracht.
Jedoch werden nun alle URL´s rot markiert. Ich möchte aber, dass lediglich die Links markiert werden, welche nicht mehr existieren.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige