Microsoft Excel

Herbers Excel/VBA-Archiv

Mit Formel erstellten Hyperlink mit VBA auslesen


Betrifft: Mit Formel erstellten Hyperlink mit VBA auslesen von: Jörg
Geschrieben am: 27.07.2017 14:19:42

Hallo zusammen,

ich erstelle mir per Tabellen-Formel einen Hyperlink. Dieser funktioniert im Excel (V 2016) auch perfekt! Basis ist u.a. ein Wert aus einer anderen Zelle:

=WENN(ODER(Übersicht!$D15="ETS";Übersicht!$D15="VTS");WENN(A15="";""; HYPERLINK("\\DNS-Pfad\Transportschaeden_Extern\" & LINKS(A15;8) &"\";"Link"));WENN(A15="";""; HYPERLINK("\\DNS-Pfad\Transportschaeden_LOZ\" & LINKS(A15;8) &"\";

Jetzt möchte ich den Hyperlink gerne auslesen, was mir mit den üblichen Funktionen wie .value, hyperlinks(1).address, hyperlinks(1).formula, ... nicht funktioniert. "Index ausserhalb des Bereiches!"

Hat jemand eine Idee?
Vielen Dank schon mal!

Jörg

  

Betrifft: AW: Mit Formel erstellten Hyperlink mit VBA auslesen von: Michael (migre)
Geschrieben am: 27.07.2017 15:29:43

Hallo!

Das wird, aus meiner Sicht, so nicht (bzw. maximal aufwändig) funktionieren. Ein FORMEL-Hyperlink ist leider etwas anderes als ein "echter" Hyperlink - bei Letzterem ist das Auslesen seines Ziels, wie Du bereits angesprochen hast, ja kein Problem.

Erschwerend kommt bei Dir hinzu, dass Du ja, in Abhängigkeit von Zell-Werten, unterschiedliche Hyperlink-Ziel-Möglichkeiten innerhalb der Formel hast - d.h. es müsste nicht nur der Formeltext zunächst nach den einzelnen Hyperlink-Formel-Teilen abgesucht werden, sondern dann eigentlich auch die entsprechenden Zell-Werte mitgeprüft werden, um zu entscheiden, welches Hyperlink-Ziel es denn jetzt sein darf.

Die grds. Vorgehensweise, also das Extrahieren einer Hyperlink-Formel, wie zB hier https://stackoverflow.com/questions/32230657/extract-url-from-excel-hyperlink-formula, wird also durch die vielen Zellwert-Bedingungen und die unterschiedlichen Hyperlink-Varianten massiv erschwert.

LG
Michael


  

Betrifft: AW: Mit Formel erstellten Hyperlink mit VBA auslesen von: Jörg
Geschrieben am: 27.07.2017 16:37:57

Danke für's Fedback!

... das dachte ich mir schon. Schade!
Ich habe jetzt einen Workaround aktiviert, da mein Problem eigentlich auch noch komplexer ist. Die Datei liegt auf einem Netzlaufwerk und ist freigeben. Das schränkt die Funtkionalitäten noch weiter ein.
Ich nehme die Freigabe vor dem Kopieren des "unechten" Hyperlinks in eine Mail per VBA raus und aktiere sie anschließend wieder. Funktioniert, dauert jetzt aber leider ca. 5 Sekunden, da die Datei trotz XLSB 2,5 MB hat. Naja ...


  

Betrifft: Klingt übel, da hab ich auch keine Lösung... von: Michael (migre)
Geschrieben am: 27.07.2017 16:42:17

Jörg,

...außer evtl. mit neuer Konzeption der Mappe beginnen. Was nicht unbedingt das ist, was Du hören willst. Trotzdem viel Erfolg noch.

LG
Michael


  

Betrifft: AW: Mit Formel erstellten Hyperlink mit VBA auslesen von: Zwenn
Geschrieben am: 28.07.2017 12:34:35

Hallo Jörg,

ist der FriendlyName in allen vorkommenden Hyperlink Formeln der Gesamtformel immer ein festes Wort, wie in Deinem Beispiel "Link", oder wird dieser Name auch aus einem Formelkostrukt gebildet?

Die Idee, die hinter dieser Frage steht ist, die Formel in eine String Variable einzulesen, jeweils die Hyperlink Formeln zu extrahieren und den FriendlyName aus der Formel zu löschen. So erhält man dann genau Deine Formel, nur ohne FriendlyNames. Diese Formel schreibt man in eine Zelle, in der dann der sich aus der Formel ergebende Hyperlink im Klartext erscheint. Nun kann man den Hyperlink einfach als Value aus der Zelle in eine Variable kopieren und die Formel in der Zelle wieder löschen.

Das funktioniert aber so nur, wenn die FriendlyNames aus einem Wort bestehen. Wenn sie aus Formeln gebildet werden, habe ich im Moment keinen Ansatz, wie man den Formelstring dann parsen müsste, um einen FriendlyName loszuwerden.

Viele Grüße,

Zwenn


  

Betrifft: AW: Mit Formel erstellten Hyperlink mit VBA auslesen von: Zwenn
Geschrieben am: 28.07.2017 12:51:42

Ich nochmal,

habe doch einen Ansatz, wie man ein Formelkonstrukt für die Bildung der FriendlyNames loswerden könnte.

Brauchst Du noch eine Lösung? Dann würde ich mal ausprobieren, ob meine Idee funktioniert. Da komme ich allerdings erst am Abend zu.

Gruß,

Zwenn


Beiträge aus den Excel-Beispielen zum Thema "Mit Formel erstellten Hyperlink mit VBA auslesen"