Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1424to1428
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

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

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!

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

370 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige