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

Forumthread: Hyperlink Anchor variabel

Hyperlink Anchor variabel
14.12.2012 10:37:04
Gisela
Hallo und guten Tag,
folgender Makro funktioniert - ist aus dem Forum -.
Sub hype()
Dim wksNew As String
wksNew = Sheets("neu").Range("b5").Value
Worksheets("neu").Hyperlinks.Add Address:="", _
Anchor:=Sheets("start").Range("j45"), _
SubAddress:=Sheets(wksNew).Range("A1").Address(True, True, , True)
End Sub
In "neu" steht "b5" jeweils ein Tabellenname (der jeweilige Monat). In "start" ist ein Bereich von 12 Zellen. In diese sollen die Hyperlinks eingefügt werden. Also in der ersten Zelle des Bereichs im Januar, der von Januar usw. Was muss ich bei "Anchor" ändern, damit ich die o.a. ("j45")nicht immer per Hand eingebe.
Vielen Dank und liebe Grüße
Gisela

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hyperlinks auf benannte Blätter, Zelle A1
14.12.2012 10:59:52
NoNet
Hallo Gisela,
ich habe Dein Anliegen zwar nicht so ganz verstanden, vermute jedoch, dass Du einfach nur im Blatt "Start" auf die Zellen J45:J56 die entsprechenden Hyperlinks auf das jeweilige Blatt setzen möchtest !?!
Das funktioniert mit folgendem Code :
Sub HyperlinkMonatsblatt()
'Fügt in  Blatt "Start" im  Bereci J45:J56 die Hyperlinks zu den
'entsprechenden Monatsblättern (Zelle A1) hinzu
Dim rngZ As Range
For Each rngZ In Sheets("start").Range("J45:J56")
rngZ.Parent.Hyperlinks.Add anchor:=rngZ, Address:="", _
SubAddress:=Sheets(rngZ.Value).Range("A1").Address(True, True, , True)
Next
End Sub
Den Zusatznutzen des Blattes "Neu" habe ich nicht verstanden und daher im Code nicht berücksichtigt !
Gruß, NoNet

Anzeige
AW: Hyperlinks auf benannte Blätter, Zelle A1
14.12.2012 12:30:54
Gisela
Hallo NoNet,
erstmal vielen Dank für deine Hilfe. Zur Erklärung: in "neu" steht z.B. in "b5" welches neue TB angelegt werden soll. In dieses neue TB werden die Daten des Vormonats und weitere Überträge übernommen usw.Ds funktioniert auch alles.
Danach soll auf "Start" ein Hyperlink zu diesem neuen TB angelegt werden. Die Hyperlinks sollen auf "Start" im Bereich "G43:J45" angelegt werden. Also der Januar in G43 und wenn das neue TB Februar angelegt wird, dann Februar z.B. in H43, später der März z.B. in I43 usw.
Ich hoffe, dass dieser Versuch der Erklärung hilfreich ist.
Vielen Dank und Grüße
Gisela

Anzeige
Hyperlink auf neues Monatsblatt
14.12.2012 13:10:34
NoNet
Hallo Gisela,
ich glaube, ich habe es jetzt verstanden :
Die Monate im Blatt "Start" sind folgendermassen angeordnet :
FGHIJK
42
43
44
45
46

Wird in Blatt "Neu" in Zelle B5 jetzt z.B. "Mai" eingegeben, erstellt das Makro im Blatt "Start", Zelle H44 den Hyperlink auf das Blatt "Mai", Zelle A1 :
Sub HyperlinkMonatsblatt()
'Fügt in  Blatt "Start" im  Bereich G43:J45 die Hyperlinks zu dem
'entsprechenden neu erzeugten Monatsblatt (Zelle A1) hinzu
Dim rngNeu As Range, rngZ As Range
Set rngNeu = Sheets("Neu").[B5]     'In B5 steht der Name des ausgewählten Monats
For Each rngZ In Sheets("start").Range("G43:J45")
If rngZ.Value = rngNeu.Value Then
rngZ.Parent.Hyperlinks.Add anchor:=rngZ, Address:="", _
SubAddress:=Sheets(rngZ.Value).Range("A1").Address(True, True, , True)
End If
Next
End Sub
Hier eine Beispiel-Datei (ohne die Routine zum Erstellen/Kopieren des Monatsblattes !).
https://www.herber.de/bbs/user/83009.xlsm
Gruß, NoNet

Anzeige
Super, vielen Dank und Grüße o.T.
14.12.2012 13:38:58
Gisela
o.t.
;
Anzeige
Anzeige

Infobox / Tutorial

Hyperlink-Anker in Excel dynamisch setzen


Schritt-für-Schritt-Anleitung

Um in Excel Hyperlinks dynamisch zu setzen, kannst Du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, um Hyperlinks in einem bestimmten Bereich zu erstellen.

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

  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx) und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub HyperlinkMonatsblatt()
       Dim rngNeu As Range, rngZ As Range
       Set rngNeu = Sheets("Neu").[B5]     'In B5 steht der Name des ausgewählten Monats
       For Each rngZ In Sheets("Start").Range("G43:J45")
           If rngZ.Value = rngNeu.Value Then
               rngZ.Parent.Hyperlinks.Add anchor:=rngZ, Address:="", _
               SubAddress:=Sheets(rngZ.Value).Range("A1").Address(True, True, , True)
           End If
       Next
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um die Hyperlinks zu erstellen. Du kannst dies über Entwicklertools > Makros tun.


Häufige Fehler und Lösungen

  • Fehler: "Das angegebene Blatt existiert nicht."

    • Lösung: Stelle sicher, dass der Name des Blattes, auf das verwiesen wird, in Zelle B5 korrekt eingegeben ist.
  • Fehler: Hyperlink wird nicht gesetzt.

    • Lösung: Überprüfe, ob der Wert in den Zellen G43:J45 mit dem Wert in B5 übereinstimmt.
  • Problem mit dem Hyperlinks.Add-Befehl:

    • Lösung: Achte darauf, dass Du den Anchor korrekt angibst. Der anchor vba sollte auf die richtige Range zeigen.

Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch die Funktion HYPERLINK in Excel nutzen:

=HYPERLINK("#'Blattname'!A1", "Linktext")

Diese Methode ist jedoch weniger dynamisch und erfordert manuelle Anpassungen. VBA ist effektiver, um hyperlinks.add in einem größeren Bereich zu verwenden.


Praktische Beispiele

Hier ist ein praktisches Beispiel zur Anwendung des Codes. Angenommen, Du hast folgende Monate in Zelle B5 eingegeben:

  • Januar
  • Februar
  • März

Wenn Du das Makro ausführst, wird der Hyperlink für den entsprechenden Monat in den Zellen G43:J45 erstellt.

Beispiel für das Setzen eines Hyperlinks für "Februar":

'Wenn B5 "Februar" enthält und G44 "Februar" ist:
rngZ.Parent.Hyperlinks.Add anchor:=rngZ, Address:="", _
SubAddress:=Sheets(rngZ.Value).Range("A1").Address(True, True, , True)

Tipps für Profis

  • Nutze die VBA-Optionen, um Hyperlinks nicht nur zu setzen, sondern auch zu löschen oder zu bearbeiten.
  • Experimentiere mit hyperlinks.add anchor und passe die Zellbereiche an, um eine benutzerdefinierte Struktur zu erstellen.
  • Dokumentiere Deinen Code gut, um die Wartung zu erleichtern und anderen zu helfen, Deinen vba anchor zu verstehen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Hyperlinks auf einmal setzen?
Du kannst eine Schleife verwenden, um über einen Zellbereich zu iterieren und Hyperlinks für jeden Wert zu setzen, wie es im Beispielcode gezeigt wird.

2. Was mache ich, wenn ich einen Hyperlink entfernen möchte?
Um einen Hyperlink zu entfernen, kannst Du den folgenden Code verwenden:

ActiveSheet.Hyperlinks("Linktext").Delete

3. Kann ich die Hyperlinks ohne VBA setzen?
Ja, Du kannst die HYPERLINK-Funktion direkt in die Zellen eingeben, aber das ist weniger flexibel als die Verwendung von VBA.

4. Wie kann ich sicherstellen, dass mein Makro immer funktioniert?
Stelle sicher, dass alle Blattnamen und Zellreferenzen korrekt sind. Teste das Makro regelmäßig nach Änderungen an der Struktur Deiner Excel-Datei.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige