Clever-Excel-Forum

Normale Version: Hyperlinks mit "relativem" Dateinamen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen! Ich arbeite mit EXCEL 2013 und habe ein Problem mit Hyperlinks, mit denen ich in der aktuellen Datei
zu Sprungadressen in einem anderen Tabellenblatt springen möchte. Erzeuge ich die Hyperlinks mit dem Hyperlink-
Symbol, kann ich als Datei die "aktuelle Datei" angeben, was den Vorteil hat, das die Excel-Datei auch in einem anderen
Verzeichnis bzw. unter anderem Namen abgespeichert werden kann und alle Hyperlinks funktionieren weiter.
Allerdings werden die von mir angegebene Sprungadressen als "absolut" erkannt, d. h. füge ich im Tabellenblatt, in dem sich
die Sprungziel-Adressen befinden, z. B. eine neue Zeile ein, so werden die Hyperlinks, die sich auf Sprungziele unterhalb der
eingefügten Zeile befinden, nicht angepasst.
Meine nächste Idee war, mit manuell erfassten Hyperlinks zu arbeiten, in der Form:

=HYPERLINK("[Testmappe.xls]Tabelle2!"&WECHSELN(ADRESSE(1;SPALTE(Tabelle2!GR:GR);4);1;)&ZEILE(Tabelle2!30:30);"Springe")

Was das Anpassen der Formel bei verschobenen Sprungzielen angeht, funktioniert die Sache gut. Diese Formel hat allerdings den Nachteil,
dass der Dateiname sich nicht ändert, wenn die Datei unter einem anderen Namen abgespeichert wird.

Allgemien habe ich zum Erzeugen des aktuellen Dateinamens an anderer Stelle diesen Vorschlag gefunden:

=WECHSELN(LINKS(ZELLE("Dateiname";$A$1);-1+FINDEN("]";ZELLE("Dateiname";$A$1)));"[";"")

Leider schaffe ich es nicht, beide Formeln zu einer einzigen funktionierenden zusammenzufassen. Gesucht wird also die Hyperlink-Formel,
bei der sich die Sprungziel-Adresse immer in der aktuellen Datei befindet und bei der die Sprungziele beim Einfügen/Löschen von Zeilen/Spalten
automatisch angepasst werden. Kann jemand helfen?
Vielen Dank im voraus und viele Grüße

Martin
Hallo Martin,

mit dieser Formel kannst du dein Vorhaben umsetzen:

Code:
=HYPERLINK("#'[Hyperlinks Mappe2.xlsx]Daten'!A"&VERGLEICH('D:\01-Meine Daten\Forum\Testmappen\erstellte Testmappen\[Hyperlinks Mappe2.xlsx]Daten'!A1;'D:\01-Meine Daten\Forum\Testmappen\erstellte Testmappen\[Hyperlinks Mappe2.xlsx]Daten'!A:A;0);'D:\01-Meine Daten\Forum\Testmappen\erstellte Testmappen\[Hyperlinks Mappe2.xlsx]Daten'!A1)

Voraussetzung ist allerdings, dass beide Mappen geöffnet sind.

Im Anhang habe ich dir die beiden mal zum Spielen hochgeladen.

[attachment=1952]
[attachment=1953]
Hallo Martin,

so richtig weiß ich nicht, wozu Du den Dateinamen benötigst, wenn - ich zitiere -

Zitat:sich die Sprungziel-Adresse immer in der aktuellen Datei befindet
Wenn Du mit dem Hyperlink die Datei nicht verlässt, ist doch egal, wo sie liegt. Da spielt der Pfad also gar keine Rolle.

Zitat:bei der die Sprungziele beim Einfügen/Löschen von Zeilen/Spalten automatisch angepasst werden

wenn Du die Adresse so erstellst:
ADRESSE(1;SPALTE(Tabelle2!GR:GR);4);1;)&ZEILE(Tabelle2!30:30)
wird das Sprungziel nicht angepasst.

Nimmst Du hingegen
ADRESSE(1;SPALTE(Tabelle2!GR30);4);1;)&ZEILE(Tabelle2!GR30)
klappt es.
Hallo Günter,

vielen Dank für Deinen schnellen Lösungsvorschlag und Deine Beispieldateien.
Leider wird mein Problem dadurch noch nicht ganz gelöst. Wahrscheinlich habe ich mich auch zu kompliziert ausgedrückt.

Ich möchte lediglich innerhalb einer Datei von einem Tabellenblatt in ein anderes Tabellenblatt zu einer bestimmten Zelladresse springen und wenn die Sprungzieladresse verschoben wird (z. B. durch Einfügen von Zeilen/Spalten) soll sich die Hyperlink-Formel entsprechen anpassen.
Insoweit funktioniert dein Lösungsvorschlag.

Wird diese Datei unter einem anderen Dateinamen (und ggfs. in einem ganz anderen Verzeichnis) abgespeichert, soll die Hyperlinkformel automatisch entsprechend auf diesen neuen Dateinamen abgeändert werden, damit sie auch in der neu abgespeicherten Datei funktioniert und sich somit auf diese (aktuelle) Datei bezieht.
(Vielleicht gibt es ja eine Lösung, bei der der Dateiname in der Formel gar nicht erschienen muss??)

Ich habe Deine Beispiel-Zieldatei unter anderem Namen abgespeichert, aber der Name der Datei am Anfang der Hyperlink-Formeln (in eckigen Klammern) wurde nicht automatisch angepasst und somit war der Sprungbefehl ungültig. Vielleicht hast Du ja noch eine andere Idee?

Besten Dank und viele Grüße

Martin
Hallo Martin,

Du darfst auch gerne meine Hinweise nutzen. Einen hatte ich nicht dabei - das # vor dem Tabellennamen.


Code:
=HYPERLINK("#Tabelle2!"&WECHSELN(ADRESSE(1;SPALTE(Tabelle2!GR30);4);1;)&ZEILE(Tabelle2!GR30);"Springe")
Hi Martin,

Zitat:Ich möchte lediglich innerhalb einer Datei von einem Tabellenblatt in ein anderes Tabellenblatt zu einer bestimmten Zelladresse springen...

da reicht dann folgende Formel:


Code:
=HYPERLINK("#'Daten'!A"&VERGLEICH(Daten!A1;Daten!A:A;0);Daten!A1)

Zitat:Wird diese Datei unter einem anderen Dateinamen (und ggfs. in einem ganz anderen Verzeichnis) abgespeichert,

soll die Hyperlinkformel automatisch entsprechend auf diesen neuen Dateinamen abgeändert werden, damit sie
auch in der neu abgespeicherten Datei funktioniert und sich somit auf diese (aktuelle) Datei bezieht.

Sorry, aber das verstehe ich überhaupt nicht. Was hat das Abspeichern unter anderem Namen mit dem Hypderlink zu tun, wenn dieser nicht über zwei verschiedene Mappen funktionieren soll? Es ist völlig unerheblich, wie du die Datei benennst. Lediglich die einzelnen Tabellenblätter können nicht ohne Anpassung der Formel umbenannt werden.
Hallöchen,

wobei ein Umbenennen des Blattes auch möglich wäre, wenn man den Blattname auf dem Zielblatt per Formel ermittelt und in der Hyperlinkformel dann diesen Zellinhalt verwendet.

Code:
=HYPERLINK("#"&Tabelle2!A1&"!"&WECHSELN(ADRESSE(1;SPALTE(Tabelle2!GR30);4);1;)&ZEILE(Tabelle2!GR30);"Springe")
und in Tabelle2!A1
Code:
=TEIL(ZELLE("Dateiname";$A$1);FINDEN("]";ZELLE("Dateiname";$A$1))+1;31)

(muss natürlich nicht in A1 stehn, kann auch irgendwo anders sein.)
(17.04.2015, 19:49)schauan schrieb: [ -> ]Hallo Martin,

Du darfst auch gerne meine Hinweise nutzen. Einen hatte ich nicht dabei - das # vor dem Tabellennamen.



Code:
=HYPERLINK("#Tabelle2!"&WECHSELN(ADRESSE(1;SPALTE(Tabelle2!GR30);4);1;)&ZEILE(Tabelle2!GR30);"Springe")

Hallo André,

(bitte entschuldige die späte Antwort, ich war einige Tage verhindert)
Alles super, Deine Formel löst mein Hyperlink-Problem perfekt!
Ich wusste natürlich nicht, dass man auf den Dateinamen/Pfad in der Hyperlink-Formel
komplett verzichten kann, wenn man sich nur in ein und derselben Datei bewegt.
Besten Dank für Deine Hilfe!

Viele Grüße

Martin
Hallo Günther,

alles völlig richtig, ich wusste nur nicht, dass man den Dateinamen/Pfad
bei diesem einfachen Sprungbefehl nicht benötigt.
Vielen Dank und viele Grüße

Martin