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

Zelle färben wenn Hyperlink aktiviert wurde

Zelle färben wenn Hyperlink aktiviert wurde
04.03.2015 09:02:00
Philipp
Hallo zusammen,
ich habe ein kurzes Anliegen an euch...
In meiner Excel Datei befinden sich zwei Tabellenblätter.
1.) Kalender 2015
2.) Übersicht
Nun werde ich in meinen Jahreskalender 2015 einige Hyperlinks einfügen, damit ich einfacher in das Übersichtsblatt komme.
Meine Überlegung war es, dass die Zelle (Kalender) rot eingefärbt wird, wenn der Hyperlink angeklickt wurde.
Wie bekomme ich das am besten hin?
Habe es schon mit bedingter Formatierung versucht, aber leider ohne Erfolg...
Gruß
Philipp

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Über Worksheet-Ereignis FollowHyperlink...
04.03.2015 09:59:11
Michael
Hallo Philipp!
Das ist über VBA möglich. Folgendes Makro muss in den Codeteil der Tabelle, in der die Hyperlinks gesetzt sind:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Target.Range.Interior.Color = RGB(238, 250, 84)
End Sub
Die Hintergrundfarbe ist hier als RGB-Wert angegeben - das musst Du nach Deinen Vorstellungen anpassen.
Liebe Grüße
Michael

Ergänzung: RGB-Wert für rote Zellfarbe...
04.03.2015 10:05:35
Michael
Hallo Philipp!
Habe übersehen, dass Du konkret rote Zellfarbe wolltest: Dafür ist der RGB-Wert im Code als RGB(255, 0,0) anzugeben.
LG
Michael

Anzeige
...oder nur vbRed, 255 bzw &hFF ohne RGB! owT
04.03.2015 18:02:12
Luc:-?
:-?

Ergänzung: Zellfärbung wieder zurücksetzen...
04.03.2015 10:29:06
Michael
Hallo Philipp!
Sorry, dass ich Dir so zerklüftet antworte - aber mir sind die Dinge erst nach und nach eingefallen, hätte ich mir nur gleich mehr Zeit gelassen.
Du willst ja bestimmt die gefärbten Zellen (jene mit Hyperlinks) wieder zurücksetzen, wenn Deine Arbeit an der Datei erledigt ist; sonst bliebe nach einmaligem folgen des Hyperlinks die jeweilige Zelle gefärbt. Wenn dem so ist, würde ich vor dem Schließen der Datei einfach alle Zellen, die Hyperlinks enthalten, wieder "entfärben". Folgendes Makro muss dafür in den Codeteil der Arbeitsmappe:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim h As Hyperlink
For Each h In Tabelle1.Hyperlinks
h.Range.Interior.ColorIndex = -4142
Next
End Sub
Hier musst Du natürlich Tabelle1 auf den Namen Deines Tabellenblattes mit den Hyperlinks ändern - etwa auf Worksheets("Kalender 2015").Hyperlinks
So jetzt fällt mir, hoffe ich, nichts mehr dazu ein.
Liebe Grüße
Michael

Anzeige
Das fktt aber nur bei echten HLs, ...
05.03.2015 02:42:24
Luc:-?
Michael,
nicht bei indirekten Fml-HLs wie =HYPERLINK("…"[;"…"])!
Hallo, Philipp;
es geht nicht ohne VBA aber durchaus mit BedingtFormat-Unterstützung, welches die ZellFärbung unternimmt. Das hat den Vorteil, dass man diese nicht zurücksetzen muss und die Zelle somit ursprüngl jede beliebige Farbe haben kann. Anderenfalls müsste sich das Pgm diese merken.
Das folgd Pgm geht von einer BedingtFormatierg von HL-Zellen per Zellwert-Vgl mit einer benannten Variablen des Blattes aus. Dieser Name wird automatisch bei BlattAktivierung angelegt, falls er nicht schon vorhanden ist (ggf den Wert der ModulKonstanten ändern!). Also zuerst mal auf ein anderes Blatt wechseln, dann auf das Blatt mit den nachfolgden EreignisProzeduren zurückkehren.
Auf alle relevante HLs (auch Fml-HLs!) enthaltende Zellen, die einbezogen wdn sollen, ist dann eine auf den Zellwert bezogene BedingtFormatierung zu legen: Zellwert ist gleich und Fml =HLText (oder der geänderte Name), sowie ZellFarbe einstellen. Im DokumentKlassenModul des relevanten Blattes sind dann folgende EreignisProzeduren anzulegen:
Option Explicit
Const naHLTx$ = "HLText"
Rem Legt ggf f.HL-ZellFärb notwendigen Namen an.
Private Sub Worksheet_Activate()
On Error Resume Next
If IsError(Me.Names(naHLTx)) Then Me.Names.Add naHLTx, "="""""
End Sub
Rem Setzt den Namenswert auf Leer-String zurück.
Private Sub Worksheet_Deactivate()
On Error Resume Next
If IsError(Me.Names(naHLTx)) Then Else Me.Names(naHLTx).Value = "="""""
End Sub
Rem Färbt im ZusammSpiel m.BedingtFormat d.zuletzt angeklickten HL
'   jegl Art; dabei bleibt letzte ZellFärb solange erhalt wie kein
'   and HL (auch o.BedingtFormat!) angeklickt oder d.Blatt gewech-
'   selt wurde; BedingtFormat f.HLZellen muss m.VglsBezug z.blatt-
'   bezogen dafür vgebenen Namen (enthält jew ZWert) angelegt wdn.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const txFmHL$ = "HYPERLINK("
Dim adZiel$, Ziel As Hyperlink
On Error GoTo ex: If Target.Count > 1 Then Err.Raise xlErrNA
If CBool(Target.Hyperlinks.Count) Or (Target.HasFormula _
And CBool(InStr(Target.Formula, txFmHL))) Then
If CBool(Target.FormatConditions.Count) Then
Me.Names(naHLTx).Value = "=""" & Target & """"
If Target.Hyperlinks.Count = 0 Then
adZiel = Me.Evaluate(Replace(Target.Formula, _
",""" & Target & """", ""))
Set Ziel = Target.Hyperlinks.Add(Target, adZiel)
Ziel.Follow: Ziel.Delete
Target.Font.Underline = xlUnderlineStyleSingle
Else: Target.Hyperlinks(1).Follow
End If
Else: On Error Resume Next
If IsError(Me.Names(naHLTx)) Then
Else: Me.Names(naHLTx).Value = "="""""
End If
End If
End If
ex: Set Ziel = Nothing
End Sub
Viel Erfolg!
Gruß, Luc :-?
Besser informiert mit …

Anzeige
Finde ich gut, dass Du Dich einklinkst Luc...
05.03.2015 09:15:47
Michael
Guten Morgen!
... so kann zumindest ich mir neue Ansichten bzw. Herangehensweisen mitnehmen.
Leider aber dürfte es Philipp nicht mehr wirklich interessieren, die Beantwortung seiner Frage auch nur irgendwie mitzuverfolgen, geschweige denn zu kommentieren.
Schade, aber wie gesagt, wenigstens füllt sich das Archiv mit nützlichen Tipps und ich nehme mir auch was mit.
Wie man allerdings mit seinen Fragen andere Leute unentgeltlich beschäftigen kann, und sich dann nicht mehr meldet, das werde ich wohl nie verstehen...
Schönen Tag!
Michael

AW: Finde ich gut, dass Du Dich einklinkst Luc...
05.03.2015 11:54:51
Philipp
Hallo ihr zwei,
sry, dass ich mich jetzt erst melde...
Habe erst jetzt Zeit gefunden mich um mein Anliegen zu kümmern...
Vielen Dank für eure Hilfe...ich habe das soweit hinbekommen!
Nur ein kurzes Anliegen...ich möchte gerne wenn der Hyperlink aktiviert wurde die Ansicht des Ziels fixieren...
d.h wenn ich den Verweis z.B. auf Zelle DN94 habe, würde ich die Ansicht gerne im linken oberen Bildrand haben...spielt es dann zur Debatte, dass ich die ersten drei Spalten (A, B, C) fixiert habe?
Sry nochmal...

Anzeige
Das spielt zwar keine Debatte, aber eine Rolle,...
05.03.2015 12:09:56
Luc:-?
…Philipp,
die 3 Spalten bleiben immer in der Ansicht, es sei denn, man hebt die Fixierung zeitweise auf und setzt sie später (bloß wann?) wieder neu. Außerdem muss gescrollt wdn, wenn das SprungZiel noch im sichtbaren Bereich liegt.
Meine Lösung ist universeller als du es hier wahrscheinlich benötigst, enthält solche Extras aber nicht.
Luc :-?

AW: Das spielt zwar keine Debatte, aber eine Rolle,...
05.03.2015 12:49:54
Philipp
Und wie bekomme ich das jetzt hin..? per VBA oder wie?

Da hab ich Dir wohl unrecht getan...
05.03.2015 14:27:06
Michael
Hallo Philipp!
Freut mich, dass Du Dich doch noch gemeldet hast - verzeih', dass ich vorschnell geurteilt habe, aber viele Fragesteller melden sich tatsächlich nicht mehr wieder.
Zu Lucs universeller Lösung kann ich nichts beitragen - aber Luc wird Dir sicher noch entsprechend helfen.
Viel Erfolg
Michael

Anzeige
Da ich die Fml-HLs temporär durch echte HLs ...
05.03.2015 15:18:28
Luc:-?
…ersetze, Michael (& Philipp),
könnte hier in jedem Fall das HyperlinkFollow-Ereignis genutzt wdn, um die ZielZelle an den linken oberen Bildrand (des unfixierten[?] sichtbaren Bereichs) zu rücken. Dabei wäre wohl eher mit Left/Top-ZielZellenAbständen (=0) als mit Scroll zu arbeiten, was du ja mal ausprobieren kannst, Michael, denn ich habe momentan keine Zeit dafür.
Gruß, Luc :-?

Sorry Philipp (und Luc)...
05.03.2015 16:49:10
Michael
...aber mir ist die Ergänzung von Lucs Code zu komplex; d.h. ich kann hinsichtlich Ziel-Zelle an den oberen Bildschirmrand rücken nichts beitragen; zumindest heute nicht, evtl. arbeite ich mich in die Frage noch ein, mal sehen.
Grüße und viel Erfolg
Michael

Anzeige
Das kannst du ganz separat machen, ...
05.03.2015 18:18:20
Luc:-?
…Michael,
einfach nur mit einer EreignisProzedur, die auf dem von mir genannten Ereignis aufsetzt.
Luc :-?

Ja, das ist ein häufig zu beobachtendes ...
05.03.2015 12:02:05
Luc:-?
…Phänomen bzw FragestellerLeiden, Michael;
aber somit hat mein „Einklinken“ sogar einen sofort ersichtlichen Erfolg gehabt… ;-)
Allerdings wird bei Fml-HLs durch das Entfernen des temporär angelegten HLs auch die Schriftfarbe zurückgesetzt, aber das kann man noch Hinzufügen. Außerdem muss der freundliche Name direkt in der Fml angegeben sein oder fehlen. Wird stattdessen auf den Text in einer Zelle bezogen, klappt das Entfernen dieser Bezeichnung nicht. Deshalb müsste sicher­heits­halber noch auf ZellBezug im 2.Argument der HL-Fml geprüft wdn.
Gruß, Luc :-?

Anzeige
Absolut aber...
05.03.2015 14:30:10
Michael
Hallo Luc!
An Deinen weiteren Ausführungen zu Deiner bereits sehr universellen (und damit schon komplexen) Lösung zeigt sich für mich wieder einmal: Nur weil es mit VBA funktioniert, muss es den Aufwand noch lange nicht immer Wert sein ;-).
Danke, dass Du mich wieder an den Unterschied zwischen echten HL und Formel-HL erinnert hast! Macht zwar wenig leichter, ist aber gut zu wissen...
Salut!
Michael

AW: Absolut aber...
06.03.2015 08:17:26
Philipp
Morgen ihr zwei,
sry, aber meine VBA Kenntnisse sind dermaßen schlecht, dass ich mit euren Begrifflichkeiten nichts anfangen kann...ich habe letztens einen sehr knackigen VBA gefunden...aber leider komme ich da nicht mehr drauf!
Habt ihr auf die schnelle einen parat? Nur wenn es nicht so viele Umstände macht :D
Danke und Gruß

Anzeige
AW: Absolut aber...
06.03.2015 08:17:32
Philipp
Morgen ihr zwei,
sry, aber meine VBA Kenntnisse sind dermaßen schlecht, dass ich mit euren Begrifflichkeiten nichts anfangen kann...ich habe letztens einen sehr knackigen VBA gefunden...aber leider komme ich da nicht mehr drauf!
Habt ihr auf die schnelle einen parat? Nur wenn es nicht so viele Umstände macht :D
Danke und Gruß

So, jetzt nochmal von vorne :-)...
06.03.2015 10:01:35
vorne
Hallo Philipp!
Ich gebe zu, ich blicke jetzt durch unseren Faden nicht mehr ganz durch. Deshalb hier der Neustart-Versuch meinerseits - es wurde von Luc und mir doch schon einiges geschrieben, Du sollst ja zu einer Lösung kommen.
Du hast geschrieben:
Vielen Dank für eure Hilfe...ich habe das soweit hinbekommen!
Super; aber welche Variante - Lucs oder meine? Die gehen ja ziemlich auseinander, hängt auch davon ab, welche Hyperlinks Du einsetzt
Und wie bekomme ich das jetzt hin..? per VBA oder wie?
Ja, was jetzt? Meinen Code, Lucs Code? Oder Deine weitere Frage bzgl. Anzeige der Zielzelle in der linken oberen Ecke?
ich habe letztens einen sehr knackigen VBA gefunden
Wofür hast Du Code gefunden - bezieht sich das noch auf die Hyperlink-Färben-Frage, oder die Zelle links oben anzeigen-Frage.
Habt ihr auf die schnelle einen parat?
Deine ursprüngliche Frage (Zellen mit Hyperlinks färben, nach Klick auf Hyperlink) ist gar nicht so einfach zu beantworten: Luc hat Dir aufgezeigt es gibt zwei Arten von Hyperlinks
- Variante 1: Du setzt in der Zelle mittels Kontextmenü (reMaus) einen "Hyperlink..."
- Variante 2: Du schreibst in eine Zelle die Excel-Funktion =Hyperlink(...)
Bis jetzt wissen wir nicht, wie Du das in Deiner Mappe konkret machst und es Deine Aufgabenstellung ist entsprechend komplex (v.a. kombiniert mit Hyperlink-Ziel-Zelle oben links anzeigen), als dass es hier schnell einen passenden Code gibt.
D.h.: Wo stehst Du gerade? Welchen Code (Lucs/meiner) hast Du bereits ausprobiert, was fehlt noch...
Falls Lucs Code für Dich schon funktioniert, kannst Du noch zusätzlich den folgenden Code in den Codeteil des betreffenden Arbeitsblattes kopieren, um das Hyperlink-Ziel (Zelle) immer oben links anzuzeigen - fixierte Spalten werden ignoriert(bilden sozusagen den linken Rand):
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
ActiveWindow.ScrollRow = ActiveCell.Row
ActiveWindow.ScrollColumn = ActiveCell.Column
End Sub
Gib Bescheid, wie's jetzt bei Dir aussieht!
Michael

Anzeige
AW: So, jetzt nochmal von vorne :-)...
06.03.2015 10:48:19
vorne
Hey Michael,
sry für meine unverständliche Mitteilungen...
Ich habe dir jetzt ganz einfach meine Datei mail hochgeladen...
Die Färbung der Zellen habe ich über Formeln und bedingte Formatierung hinbekommen...du wirst mich wahrscheinlich komlett für dumm verkaufen :D
Die Hyperlinks sind jeweils in den Tagen hinterlegt (MO, DI, MI usw.)
Sobald man einen Tag auswählt, soll die Ansicht des TAges im Tabellenblatt Übersicht um linken oberen Bildrand erscheinen...soweit verständlich?
https://www.herber.de/bbs/user/96194.xlsx

AW: So, jetzt nochmal von vorne :-)...
06.03.2015 10:48:22
vorne
Hey Michael,
sry für meine unverständliche Mitteilungen...
Ich habe dir jetzt ganz einfach meine Datei mail hochgeladen...
Die Färbung der Zellen habe ich über Formeln und bedingte Formatierung hinbekommen...du wirst mich wahrscheinlich komlett für dumm verkaufen :D
Die Hyperlinks sind jeweils in den Tagen hinterlegt (MO, DI, MI usw.)
Sobald man einen Tag auswählt, soll die Ansicht des TAges im Tabellenblatt Übersicht um linken oberen Bildrand erscheinen...soweit verständlich?
https://www.herber.de/bbs/user/96194.xlsx

Passt, schau ich mir an, melde mich später owT
06.03.2015 11:27:27
Michael
.

Ich glaube, jetzt haben wir's...
06.03.2015 13:04:05
Michael
Hallo Philipp!
Deine Beispieldatei war wirklich sehr hilfreich, weil nun erkennbar war
- was Du genau vor hast und v.a.
- wie Du die Hyperlinks setzt
Deine beiden Anforderungen
- Wenn ein Hyperlink angeklickt wurde, soll die Zelle, die den Hyperlink enthält, rot gefärbt werden
- Die Ziel-Zelle des jeweiligen Hyperlinks soll am obersten linken Bildschirmrand angezeigt werden
habe ich Dir nun direkt in Deiner Beispielmappe umgesetzt. Diese Mappe ist jetzt natürlich eine Arbeitsmappe mit Makros (ist eben nur über VBA möglich).
Eines weiß ich nach wie vor nicht: Sollen die angeklickten Hyperlink-Zellen rot gefärbt bleiben, wenn Du die Mappe wieder schließt oder soll die Färbung immer nur während der Arbeit an der Datei erhalten bleiben? In meiner Version bin ich jetzt davon ausgegangen, dass die Hyperlink-Zellen nur während der Arbeit in der Datei rot gefärbt bleiben sollen, und alle Hyperlink-Zellen werden vor dem Schließen wieder "entfärbt".
Wenn Du diese "Entfärbung" nicht möchtest, musst Du den Zugehörigen Code entfernen, das geht so:
- Drücke Alt + F11
- Im Editor in der Baumstruktur links auf "Diese Arbeitsmappe" doppelklicken
- Den Code im rechten Fenster entweder löschen (mit Maus markieren + Entf.)
oder
- vor jede Zeile ein ' (einfacher Apostroph, auf der Tastatur über der Raute) setzen (dann bleibt der Code erhalten, ist aber unwirksam = auskommentiert)
Achja: Alle diese Hyperlink-bezogenen Funktionen betreffen nur Deine Tabelle "Kalender 2015" - d.h. sind nicht universell in weiteren Blättern einsetzbar.
Hier die Datei: https://www.herber.de/bbs/user/96205.zip
Über Rückmeldung, ob Deine Anforderung nun passend umgesetzt ist, freue ich mich! Falls Du nun noch weitere Anforderungen hast, eröffne bitte einen neuen Beitrag - hier ist's schon sehr unübersichtlich, zumindest für mich.
Liebe Grüße
Michael

Und, Philipp? Passt das? Rückmeldung wäre nett owT
09.03.2015 09:13:17
Michael
.

Und, Philipp? Passt das? Rückmeldung wäre nett owT
09.03.2015 10:36:58
Philipp
Morgen Michael,
erstmal tausend Dank für deine Mühe...
Meine Anforderungen hast du komplett erfüllt :-) Die rot-Färbung habe ich rausgenommen!
Der Hyperlink-Bezug etc. hat alles gepasst, genauso wie ich mir das vorgestellt habe...
Nochmals vielen Dank...
Gruß
Philipp H.

Und, Philipp? Passt das? Rückmeldung wäre nett owT
09.03.2015 10:37:02
Philipp
Morgen Michael,
erstmal tausend Dank für deine Mühe...
Meine Anforderungen hast du komplett erfüllt :-) Die rot-Färbung habe ich rausgenommen!
Der Hyperlink-Bezug etc. hat alles gepasst, genauso wie ich mir das vorgestellt habe...
Nochmals vielen Dank...
Gruß
Philipp H.

Freut mich, Danke für die Rückmeldung owT
09.03.2015 11:37:48
Michael
.

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige