Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: per VBA Hyperlink und Text in Zelle

per VBA Hyperlink und Text in Zelle
27.05.2015 13:33:34
Martin
Hallo,
ich habe bereits sehr viele gute Anregungen aus diesem Forum übernommen, vielen Danke dafür!
Zu folgendem Problem konnte ich bisher leider noch keine Lösung finden.
Folgende Ausgangslage:
Ich habe Excel als Datenbank missbraucht (war eine Vorgabe, die ich so hinnehmen musste). Diese Tabelle ist ziemlich umfangreich (34 benutzte Spalten, bis zu 400 benutzte Zeilen). Daher möchte ich möglichst Platzsparend arbeiten, soll heißen dass ich keine neuen Zeilen oder Spalten einfügen kann und möchte.
In dieser Tabelle füge ich Informationen zum Projektverlauf ein, Terminüberwachung, Dateneingänge, Lieferantenverzeichnis, Adressbuch usw.
Jetzt habe ich eine Zelle 'Bemerkung' in der ein beliebiger Text steht. Wenn nun ein Dateneingang vorliegt, möchte ich zusätzlich in diese Zelle einen Hyperlink setzen.
Nun besteht das Problem darin, dass dann auch der Text als Hyperlink markiert wird, was nun nicht wirklich toll aussieht.
Mein Code dazu ist wie folgt:
Dim ausgabe as String
Dim zeile as Integer
Dim wks As Worksheet
Set wks = ActiveWorkbook.Sheets("Projekt")
...
zeile = RückgabeFkts.frZeile() 'gibt die letzte freie Zeile nach bestimmten Kriterien zurück
...
If Len(frm_Eintrag.frm_eintrag_txt_ao) > 0 And Not (frm_Eintrag.frm_eintrag_txt_ao = "Ablageort" Or frm_Eintrag.frm_eintrag_txt_ao = "Storage location") Then
If Len(ausgabe) > 0 Then: ausgabe = ausgabe & vbCrLf 'es ist eine Bemerkung vorhanden
ausgabe = ausgabe & "Abgelegt unter: " & vbCrLf
'wks.Cells(zeile, 18) = ausgabe & wks.Hyperlinks.Add(wks.Cells(zeile, 18), frm_Eintrag.frm_eintrag_txt_ao)
wks.Cells(zeile, 18) = wks.Hyperlinks.Add(wks.Cells(zeile, 18), frm_Eintrag.frm_eintrag_txt_ao)
wks.Cells(zeile, 18) = ausgabe & wks.Cells(zeile, 18)
End If
...
Die mittlere, auskommentierte Zeile funktioniert nicht, da verschwindet der Inhalt aus der Variable 'ausgabe'. Mit einer Leerzelle zwischen 'ausgabe' und dem Hyperlink, wird wieder der gesamte Text als Hyperlink gesetzt.
Fehlerausschluss: Wenn ein Hyperlink gesetzt werden soll, steht in 'frm_eintrag_txt_ao' die richtige Adresse (per msoFileDialogFolderPicker ausgewählt)
Vielen Dank für eure Mühen!
Gruß,
Martin

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das würde ich nicht per HL lösen, ...
27.05.2015 14:05:47
Luc:-?
…Martin,
denn mM nach wird immer der ganze Zellinhalt als HL dargestellt oder wird durch einen speziellen HL-Text ersetzt. Beides zusammen funktioniert auch mit XlFkt HYPERLINK nicht! Falls dich aber nur das Erscheinungsbild stört, kannst du ja die Unterstreichung des HL entfernen, die Textfarbe beliebig setzen und nur im InfoText anzeigen lassen, wohin die Reise geht. Der Mauszeiger zeigt auf der Zelle ohnehin ein anderes Symbol und der InfoText wird angezeigt.
Ansonsten kannst du das auch ganz ohne HL über das Worksheet_SelectionChange- bzw BeforeRightClick-Ereignis machen, das dann mit einer ergänzbaren Target-Sprungziel-Liste arbeiten muss.
Gruß, Luc :-?

Anzeige
AW: Das würde ich nicht per HL lösen, ...
27.05.2015 14:16:25
Martin
Hi Luc.
Danke für die schnelle Antwort!
Das mit der Textfarbe hab ich umgesetzt, sieht gut aus und würde meinen Ansprüchen genügen.
Nun habe ich aber ein Folgeproblem:
Wenn ich die Tabelle nun freigebe (Bearbeitung durch mehrere Benutzer), kann ich keinen Hyperlink mehr einfügen. Es verbleibt nur der Text ohne Hyperlink...
Ich versuch das mal mit dem BeforeRightClick-Ereignis, so kann ich ja auch einen Ordner öffnen.
Danke!

Anzeige
Qapla'! ;-) owT
28.05.2015 11:37:39
Luc:-?
:-?
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Hyperlink und Text in einer Excel-Zelle kombinieren


Schritt-für-Schritt-Anleitung

Um in Excel einen Hyperlink und Text in einer Zelle zu kombinieren, kannst du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass der Text in der Zelle nicht als Hyperlink angezeigt wird, während der Hyperlink trotzdem funktioniert.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject", wähle "Einfügen" und dann "Modul".

  3. Kopiere den folgenden Code in das Modul:

    Dim ausgabe As String
    Dim zeile As Integer
    Dim wks As Worksheet
    Set wks = ActiveWorkbook.Sheets("Projekt")
    
    zeile = RückgabeFkts.frZeile() ' Gibt die letzte freie Zeile nach bestimmten Kriterien zurück
    
    If Len(frm_Eintrag.frm_eintrag_txt_ao) > 0 And Not (frm_Eintrag.frm_eintrag_txt_ao = "Ablageort" Or frm_Eintrag.frm_eintrag_txt_ao = "Storage location") Then
       If Len(ausgabe) > 0 Then ausgabe = ausgabe & vbCrLf ' Es ist eine Bemerkung vorhanden
       ausgabe = ausgabe & "Abgelegt unter: " & vbCrLf
    
       ' Hyperlink hinzufügen
       wks.Hyperlinks.Add Anchor:=wks.Cells(zeile, 18), Address:=frm_Eintrag.frm_eintrag_txt_ao, TextToDisplay:="Link"
    
       ' Text hinzufügen
       wks.Cells(zeile, 18).Value = ausgabe
    End If
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um den Hyperlink und den Text in einer Zelle zu kombinieren.


Häufige Fehler und Lösungen

  • Problem: Der gesamte Zellinhalt wird als Hyperlink angezeigt.

    • Lösung: Stelle sicher, dass du den Text mit der Methode TextToDisplay hinzufügst, wie im obigen Beispiel gezeigt. So bleibt der ursprüngliche Text sichtbar, während der Hyperlink funktioniert.
  • Problem: Nach Freigabe der Tabelle kann kein Hyperlink mehr hinzugefügt werden.

    • Lösung: Überprüfe die Berechtigungen oder setze das Hyperlink-Feature über das BeforeRightClick-Ereignis um, um eine alternative Lösung anzubieten.

Alternative Methoden

Eine weitere Möglichkeit, Hyperlinks in Excel zu verwenden, besteht darin, die Formatierung anzupassen. So kannst du die Unterstreichung des Links entfernen und die Textfarbe ändern, um einen Hyperlink als Text anzuzeigen. Du kannst dies über die Formatierungsoptionen in Excel erledigen:

  1. Markiere die Zelle mit dem Hyperlink.
  2. Klicke mit der rechten Maustaste und wähle "Zellen formatieren".
  3. Gehe zum Tab "Schriftart" und deaktiviere die Unterstreichung. Ändere die Farbe nach Belieben.

Praktische Beispiele

  • Beispiel 1: Du kannst einen Hyperlink zu einem Ordner in deiner Zelle erstellen, um die Terminüberwachung Excel zu optimieren.

  • Beispiel 2: Verwende den Hyperlink, um auf einen Bericht zu verweisen, während du gleichzeitig den Status des Projekts in der Zelle beschreibst.


Tipps für Profis

  • Nutze die Worksheet_SelectionChange-Ereignisprozedur, um die Benutzererfahrung zu verbessern. Zum Beispiel könntest du beim Klicken auf die Zelle eine Nachricht anzeigen, die zusätzliche Informationen bereitstellt.

  • Experimentiere mit den Hyperlinks-Objekten in VBA, um fortgeschrittene Funktionen zu integrieren, wie zum Beispiel das Öffnen von Dateien oder das Navigieren zu Webseiten direkt aus deiner Excel-Tabelle.


FAQ: Häufige Fragen

1. Wie kann ich den Text eines Hyperlinks ändern? Du kannst den Text eines bestehenden Hyperlinks ändern, indem du den TextToDisplay-Parameter in deiner Hyperlink-Zuweisung anpasst.

2. Funktioniert das in allen Excel-Versionen? Ja, der VBA-Code sollte in den meisten aktuellen Excel-Versionen funktionieren, solange die Makros aktiviert sind.

3. Ist es möglich, mehrere Hyperlinks in einer Zelle zu haben? Nein, Excel unterstützt nicht mehrere Hyperlinks in einer einzelnen Zelle. Du kannst jedoch mehrere Zellen verwenden, um verschiedene Hyperlinks zu erstellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige