Danke für Deine schnelle Antwort aber leider stehe ich gerrade auf dem Schlauch und habe deshalb eine Testdatei mit drei Zeilen erstellt. Es wäre für mich und sicher auch für weitere Intressenten eine große Hilfe wenn Du meine Datei entsprechend ändern würdest um mein Problem zu lösen.
17.06.2025, 15:36 (Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2025, 15:38 von Egon12.)
Hallo Peter,
ich an deiner Stelle würde die Tabelle in Spalte A bis C einfach als Listobjekt (formatierte Tabelle) anlegen und den Filter zum Sortieren nutzen.
Wenn es ums lernen und üben mit Formeln geht vielleicht folgendes: Das was du suchst existiert als Formel nicht. Aber man kann dies via UDF nachprogrammieren um aus der passenden Zelle in Spalte A den Link zu extrahieren.
Wenn es dich interessiert wie man so was macht melde dich dann einfach noch mal.
Ich habe grad festgestellt, dass in deinem Fall man die Formel auslesen muss, um an den Link zu kommen, also nicht via .HyperLinks.
Die UDF wäre so:
Code:
Function LINKLESEN(SpLink As Range, Zelle As Range) Dim iZ As Variant iZ = Application.Match(Zelle.Text, SpLink, 0) If Not IsError(iZ) Then LINKLESEN = Left(Replace(SpLink.Cells(iZ, 1).FormulaLocal, "=HYPERLINK(""", ""), Len(Replace(SpLink.Cells(iZ, 1).FormulaLocal, "=HYPERLINK(", "")) - 2) End If End Function
Danke für die modifizierte Datei. Bei dieser Gelegenheit habe ich wieder einiges dazu gelernt. Deine Lösung funktioniert nur EXCEL meint jetzt es müsse mich darauf hinweisen dass es sich eventuell um eine unsichere Adresse handle. Du hast völlig recht. HYPERLINK ist zickig und deshalb mache ich an dieser Angelegenheit nicht weiter.
damit ich auch was lerne: die Datei ist genau das, was ich in meiner ersten Antwort beschrieben habe. Daher stellt sich für mich die Frage, welchen Teil von
Zitat:1. deine erzeugte Liste muss in einer Spalte die Linkadressen als angezeigten Text enthalten
du nicht verstanden hast und wie ich das hätte für dich formulieren müssen, damit du es verstehst und umsetzen kannst, ohne dass ich erst noch eine Beispieldatei erstellen muss?
17.06.2025, 19:14 (Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2025, 19:31 von ahpzet.)
Hallo Uwe
Auch Dir ein Danke für Deine Hilfe. Eigendlich wollte ich nicht mit VBA Code mein Problem lösen aber ich werde trotzdem eine Testdatei mit Deinem Code anlegen und somit noch etwas VBA lernen. Hallo Daniel Es liegt nicht an Deiner Beschreibung. Jetzt wo ich die Testdatei gesehen habe, habe ich mit dem Text die Linkadressen als angezeigten Text begriffen was Du damit meintest.
Also Du hast keine schuld an meiner Begriffstutzigkeit.
Ich habe soeben Deinen Code in meine Testdatei kopiert und als .xlsm Datei abgespeichert. Auch die Formel =EINLESEN(A6:A8;F6) habe ich in die Zelle I6 kopiert. Wenn ich mit meinen geringen VBA Kenntnissen Deinen CODE richtig interpretiere müsste dann z.B. in Zelle I6 folgendes stehen. =HYPERLINK("[D:\Tabellendokumente\Pri\Eismann_Produkte.xlsm]Katalog!B4";"Eismann_Produkte") Dem ist leider nicht so (siehe beigefügte Testdatei) oder liege ich da falsch. Es wäre schön wenn Du mir den Code korrigieren würdest denn meine VBA Kenntnisse reichen dazu nicht aus.
an der UDF braucht es keine Änderungen. Dies ist eine selbsterzeugte Formelfunktion. Erweitere die Formel einfach so:
Code:
=HYPERLINK(LINKLESEN(A6:A8;F6);F6)
Damit hast du was du suchst.
Was findet in der UDF statt:
im Bereich A6:A8 wird die Zeilennummer gesucht, welche den Text in F6 enthält. Anhand der Zeilennummer wird der Link ausgelesen und als String zurückgegeben. Somit steht dir alles zur Verfügung, was du brauchst um via =Hyperlink() den dazugehörigen Link zu erzeugen.
Lernaufgabe: Baue in die Formel aus F6 passend in die Hyperlinkformel ein und du brauchst keine zusätzliche Spalte mehr für den Link.