Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1636to1640
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

Hyperlink per VBA

Hyperlink per VBA
09.08.2018 11:49:11
Juergen

Hallo Excel-Experten!
Ich gebe in A1 den Wert '1001' ein. In Feld B1 baue ich folgende Formel: =WENNFEHLER(HYPERLINK("#'Cluster_1'!"&ADRESSE(1;VERGLEICH(A1;Cluster_1!$1:$1;0));A1);"") ... um einen Hyperlink auf das Tabellenblatt 'Cluster_1' in Zeile 1 und der jeweiligen Spalte zu ermöglichen.
Meine Tab. (mit Wertanzeige) sieht wie folgt aus:
A1: 1001 B1: 1001
A2: 1002 B2: 1002
A3: 1003 B3: 1003
Meine Tab. (mit Formelanzeige) sieht also wie folgt aus:
A1: 1001
B1: =WENNFEHLER(HYPERLINK("#'Cluster_1'!"&ADRESSE(1;VERGLEICH(A1;Cluster_1!$1:$1;0));A1);"")
A2: 1002
B2: =WENNFEHLER(HYPERLINK("#'Cluster_1'!"&ADRESSE(1;VERGLEICH(A2;Cluster_1!$1:$1;0));A2);"")
A3: 1003
B3: =WENNFEHLER(HYPERLINK("#'Cluster_1'!"&ADRESSE(1;VERGLEICH(A3;Cluster_1!$1:$1;0));A3);"") u.s.w. Funktioniert einwandfrei!
Frage: Könnte man (für A1, A2, A3 usw.) einen VBA schreiben, der direkt einen Hyperlink ermöglicht. Der Hintergrund ist, das ich diese Tabelle einem Kunden zur Verfügung stellen will. Dieser muß dann jeweils die Spalte A pflegen. Nur dann kann er mit Hyperlink auf die Spalte B zu dem jeweiligen Wert springen. Komfortabel wäre es, wenn er gleich von seinem Eintrag aus (also in Spalte A) zu dem gewünschten Wert verlinken kann. Damit könnte man sich die Spalte B sparen.
Hat jemand eine Idee? Danke und herzliche Grüße

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlink per VBA
09.08.2018 12:45:46
{Boris}
Hi,
ich versteh das Problem nicht ganz. Die Einträge in Spalte A beziehen sich ja offensichtlich auf die Überschriftszeile 1 im Blatt Cluster 1.
Frage: Steht diese Überschriftszeile nicht von vornherein fest? Weshalb muss man dann überhaupt noch was manuell in Spalte A eingeben? Man könnte doch alle fraglichen Einträge dort automatisch auflisten.
Und egal wie: Wenn Du die den Parameter "Freundlicher Name" mit "=> Link" belegst, ist es auch ganz ansehnlich / offensichtlich (so mach ich das zumindest oft):
=WENNFEHLER(HYPERLINK("#'Cluster_1'!"&ADRESSE(1;VERGLEICH(A1;Cluster_1!$1:$1;0));"=> Link");"")
VG, Boris
Anzeige
AW: Hyperlink per VBA
10.08.2018 11:32:15
Juergen
Hi Boris!
Danke für Deine Reaktion.
Es ist richtig, dass sich die Einträge in der Spalte A auf die Überschriftszeilen in 'Cluster_1' beziehen.
Ich habe aber dort nicht nur drei Überschriftszeilen (wie in der Frage formuliert) sondern größer 100, d.h. also von 1001 bis größer 1100 - ergo größer 100 Spalten.
Wenn ich nun - wie in meiner Frage angegeben - auf das Feld B2 klicke, erfolgt ein Hyperlink in 'Cluster_1' in die Spalte, die die Überschrift 1002 hat. D.H. ich muß also nicht manuell in die Tabelle 'Cluster_1' springen und dort zur Spalte mit der Überschrift 1002 scrollen. Tippe ich z.B. auf B199, springt der Hyperlink direkt zu der Spalte mit der Überschrift 1199 (wobei der Zellenname 'B199' und die letzen drei Stellen der Überschrift zur Zufall sind und keine technische Bedeutung haben). Ich muß also nicht bis zur Spalte mit der Überschrift 1199 scrollen. u.s.w.
Das gleiche Beispiel kann man ich mit dem Hyperlink zu Zeile mit dem Eintrag 1199 durchspielen. Dann würde man einfach in der Formel dem Zusatu &ADRESSE weglassen und in der Formel Cluster_1!$A:$A einfügen (wenn der Hyperlink in der Spalte A suchen soll).
Was ich aber will, ist das ich nicht - wie oben angegeben - in Zelle A1 den Eintrag 1001 vornehmen muß und in die Zelle B1 die Formel schreiben muß.
Ich will, dass der Eintrag in A1. obwohl manuell eingetragen, gleichwohl wie in einer Formatierung gleich als Hyperlinkg zur Verfügung steht.
Ich meine, man könnte in einem VBA diesem Feld gleich die Funktion Hyplerink (und wo er suchen soll) mitgeben.
Ich hoffe, ich habe mich einigermaßen verständlich ausdrücken können.
Danke und liebe Grüße
Anzeige
AW: Hyperlink per VBA
10.08.2018 12:54:37
{Boris}
Hi,
teste mal (Code gehört ins Klassenmodul des entsprechenden Tabellenblattes, wo die Eingabe erfolgt):
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range, D As Range
Dim Ws As Worksheet
Set C = Range("A1:A10") 'In diesem Eingabebereich wirkt der Code
Set Ws = Worksheets("Cluster_1")
If Target.Count = 1 Then
If Not Intersect(Target, C) Is Nothing Then
Set D = Ws.Rows(1).Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues)
If Not D Is Nothing Then
Target.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:="Cluster_1!" & D. _
Address
Else
Target.Hyperlinks.Delete
End If
End If
End If
End Sub
VG, Boris
Anzeige
AW: Hyperlink per VBA
10.08.2018 13:08:37
Juergen
Danke - super!
Werde ich über das WE probieren - und Feedback geben.
Schönes WE - Jürgen -
AW: Hyperlink per VBA
16.08.2018 00:48:59
jreinke
Hallo Boris!
Danke für den VBA. Ich habe ihn allerdings nicht als Klassenmodul eingefügt, sondern in den Worksheet eingefügt.
Er fügt sozusagen bei jeder Zelle einen Hyperlink ein, wie man ihn sonst manuell einfügt. 'Kleiner' Nachteil ist, dass man jedes Feld (A1:A10) einmal angeklickt (bestätigt) werden muß, damit in 'Cluster_1' gesucht wird. Das kann bei 500 oder mehr Zeilen mühsam werden.
Vielleicht gibt es noch einen 'Trick'.
Ich habe den VBA inzwischen so angepasst, dass er auch in Spalten suchen kann.
Also nochmals vielen Dank für Deine Hilfe.
Herzliche Grüße
- Jürgen -
Anzeige
AW: Hyperlink per VBA
16.08.2018 11:53:57
Juergen
Hier noch einmal die Datei:
https://www.herber.de/bbs/user/123371.xlsm
Unschön ist, dass, wenn mal ein Wert in einer Zelle (z.B. in Zellen A16 und A17) eingegeben worden ist (und ein Hyperlink aufgebaut worden ist), bei dem Löschen des Wertes immer ein Eintrag (s.u.) zurückbleibt.
A14 1002
A15 1010
A16 Cluster_1!$Q$1
A17 Cluster_1!$Q$1
Dieser kann nicht gelöscht werden.
Gibt's da eine Lösung.
LG - Jürgen -

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige