Zellen mit Hyperlinks erkennen und hervorheben

Excel wird für alle erdenklichen Auswertungen und Datenabgleiche verwendet. In diesem Beitrag stelle ich Dir zwei Möglichkeiten vor, um einen Zelleninhalt auf Hyperlinks zu prüfen.

In vorherigen Veröffentlichungen haben wir mit Formeln wie =ZELLE() oder über Wege mit =ZELLE.ZUORDNEN() Inhalte von Zellen interpretiert. Etwas ähnliches wurde mit bedingten Formatierungen aufgezeigt (z.B. zur Einfärbung einer Zeile, basierend auf deren Inhalte).

Ein Hyperlink kann auf zwei Arten in einer Excel-Tabelle hinterlegt werden: Via der Formel =HYPERLINK() oder durch Eingabe einer Websiten-URL. Den ersten Fall könnte mit der Formel "=ISTFORMEL()" überprüft werden und würde "WAHR" retournieren. Das könnte je nach Datengrundlage für den Auswertungszweck bereits ausreichen. Falls es sich jedoch um einen einfachen Eintrag handelt oder die Datei andere Formeln und Angaben beinhaltet, reicht dieser Ansatz nicht aus. Zur Orientierung habe ich hier eine kleine Beispieltabelle mit unterschiedlichen Fällen:

ZellenMitHyperlinks

Die Spalte A beinhaltet diverse Varianten:

  • Reguläre Texte (Titel), Zellen A2, A5 und A8;
  • Links auf Websiten (ohne Formel "HYPERLINK"!), Zellen A3, A6 und A9;
  • Mittels Formel "=HYPERLINK()" hinterlegter Link, Zelle A4;
  • fälschlicherweise als Link formatierter Text, Zelle A7.

Auslesen von Hyperlinks via Makro (VBA)

Um die eingetragenen Hyperlinks zu identifizieren, benötigen wir Makrounterstützung. In einer For-Each-Schleife gehen wir durch jede Zelle durch; ohne die Tabelle dynamisch (d.h. bei mehr oder weniger Zeileninhalten direkt zu reagieren), setzen wir:

For i = 2 To 9
[Weiterer Code folgt sogleich...]
Next

Damit durchläuft unsere Prozedur die Zeilen 2 bis 9. Innerhalb der For-Each-Schleife prüfen wir, ob (und wie viele) Hyperlinks die aktuelle Zelle der Spalte A (Spalten-Nummer 1) beinhaltet. Dazu verwenden wir:

For i = 2 To 9

If Cells(i, 1).Hyperlinks.Count = 1 Then
Cells(i, 3) = "LINK!"
End If

Next

Sollte also ein Hyperlink in der entsprechenden Zelle eingetragen worden sein, trägt das Makro in Spalte C den Hinweis "LINK!" ein. Der "Count" müsste im Falle eines Links immer 1 ergeben, weshalb die If-Prüfung das gewünschte Resultat liefert. Ich kann mir keinen Fall vorstellen, bei dem mehrere Hyperlinks in der Zelle enthalten sein sollten; ansonsten wäre die Prüfung "[...].Hyperlinks.Count >= 1 Then" sicherer.

Verknüpfungen zu externen Quellen

Verknüpfungen und Verweise auf externe Dateien sind gang und gäbe. Solange man auf seinem eigenen Gerät arbeitet oder Zugang zu den verlinkten Dateien hat, stellt dies oftmals kein Problem dar. Beim Öffnen der Haupt-Excel-Datei wird jeweils ein Dialog gestartet, ob man die Verknüpfungen aktualisieren möchte:

VerknuepfungAktualisieren_Dialog

Das birgt jedoch gewisse Risiken und teilweise möchte man die gezeigten Werte auf keinen Fall aktualisieren. Falls man auf "Aktualisieren" klickt, kann es auch vorkommen, dass man die Datei neu verlinken müsste. Dies tritt dann auf, wenn der erwartete Dateipfad nicht gefunden werden kann (die Datei wurde verschoben, umbenannt oder ist nicht auf unserem Gerät verfügbar - je nach dem, mit wem und wie man zusammenarbeitet). Es ist naheliegend, dass man dann auf "Nicht aktualisieren" klickt. Wie man die lästige Dialogbox jedoch gar nicht mehr angezeigt bekommt, zeige ich Dir weiter unten.

Datenvorbereitung und Beispiel

Für unser illustratives Beispiel habe ich bestimmte "Monatsdaten" aufbereitet, die jeweils zu verlinken sind, um das (laufende) Resultat des Jahres zu sehen. Es wäre nun an der Zeit, die Juli-Daten einzufügen:

VerknuepfungAktualisieren_Monatsdaten

Mit der untenstehenden Formel leiten wir die Daten aus der Ursprungsdatei (und dem Tabellenblatt "Juli-Daten") her:

='[Verlinkte-Datei.xlsx]Juli-Daten'!$C$4

Die Eingabe sieht in Excel wie folgt aus und liefert uns als Resultat "125", wie dies in der anderen Datei steht:

VerknuepfungAktualisieren_Formel

Dialogbox "Verknüpfungen zu externen Quellen" ausblenden

Sobald Du einen Link zu einer externen Datei hinterlegst, wird eine Schaltfläche unter dem Menüpunkt "Daten" aktiv: "Verknüpfungen bearbeiten". Du findest die Funktion hier:

VerknuepfungAktualisieren_VerknBearbeiten

Du hättest in der gezeigten Maske die Möglichkeit, Verknüpfungen komplett zu löschen. Dies ersetzt alle Bezüge zu externen Dateien mit deren effektiven Werte. Das kann sinnvoll sein, gerade dann, wenn die Datei an jemanden gesendet werden soll. Alternativ kann man links unten auf "Eingabeaufforderung beim Start..." klicken und dort auswählen, dass keine Warnung angezeigt werden soll sowie keine Verknüpfung aktualisiert werden soll. Dies führt dazu, dass beim Öffnen der Datei die lästige Dialogbox gar nicht mehr angezeigt wird.

VerknuepfungAktualisieren_Eingabeaufforderung

Dass keine Dialogbox mehr angezeigt wird, ist auch gültig für zukünftige Verlinkungen. Das bedeutet: Fügst Du weitere Links ein, wird man dazu auch nicht aufgefordert, ob die Daten aktualisiert werden sollen. Du könntest diese Eingabeaufforderung beim Start also einmalig hinterlegen (und ein fiktiver Bezug einrichten, damit die Schaltfläche überhaupt verfügbar ist und die Verlinkung anschliessend erneut löschen).