Seite 1 von 1

Sprungziel aus Hyperlink extrahieren

Verfasst: Sa, 30.08.2014 12:12
von Rakuda
Hallo zusammen,

ich versuche aus einem Hyperlink das Sprungziel zu extrahieren.
Ich habe in Zelle A1 einen Hyperlink, nun möchte ich in Zelle B1 die URL des Hyperlinks als Text darstellen.

Ich suche eine Funktion ähnlich der Funktion ZELLE, doch diese stellt leider nicht den notwendigen "InfoTyp" bereit.

Danke schon im Voraus für Deine Hilfe !

Gruss,
Rakuda

Re: Sprungziel aus Hyperlink extrahieren

Verfasst: Sa, 30.08.2014 12:37
von Karolus
Hallo

Steht in A1 eine =HYPERLINK("...";"...") -formel oder ein Link per →Einfügen→Hyperlink

Im ersten Fall wäre es relativ einfach:

Code: Alles auswählen

=TEIL(FORMEL(A1);13;FINDEN(""";""";FORMEL(A1))-13)

Re: Sprungziel aus Hyperlink extrahieren

Verfasst: Sa, 30.08.2014 16:06
von Rakuda
vielen Dank für die ersten Antworten.

Ich habe die hyperlinks mit copy-paste importiert. Nun sehe ich in der Zelle nur den Anzeigetext, und wenn ich mit der Maus drübergehe sehe ich die URL "http://www. ...". Wenn ich über eine Formel einen Bezug zur Zelle herstelle, enthält dieser immer nur den Anzeigetext. d.h. =TEIL(FORMEL(A1);13;FINDEN(""";""";FORMEL(A1))-13) oder FORMEL(A1) etc. liefert ein "#NV".

:(

Gruss,
Rakuda

Re: Sprungziel aus Hyperlink extrahieren

Verfasst: Sa, 30.08.2014 16:39
von Stephan
dafür wirst Du wohl eine benutzerdefinierte Funktion nutzen müssen, in Anlehnung an https://www.uni-due.de/~abi070/ooo.html beispielsweise:

Code: Alles auswählen

Function hl(zn As String)
	Dim oCell, oText, oParEnum, oParElement
	Dim oEnum, oElement
	oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(zn)
	oParEnum = oCell.getText().createEnumeration()
	Do While oParEnum.hasMoreElements()
		oParElement = oParEnum.nextElement()
		oEnum = oParElement.createEnumeration()
		Do While oEnum.hasMoreElements()
			oElement = oEnum.nextElement()
			If oElement.TextPortionType = "TextField" Then
				If oElement.TextField.supportsService("com.sun.star.text.TextField.URL") Then
					hl = oElement.TextField.URL
				End If
			End If
		Loop
	Loop
End Function
aufgerufen wird diese dann in Zelle B1 mittels:

=hl("A1")


Gruß
Stephan

Re: Sprungziel aus Hyperlink extrahieren

Verfasst: Sa, 30.08.2014 17:58
von Rakuda
Hallo Stefan,

vielen Dank für die grossartige Hilfe, ohne die ich wirklich aufgeschmissen wäre !

PS
zuerst hatte ich einen Runtime Fehler bekommen - da dachte ich schon oh weh ! - nach genauem Studium deiner mail fiel mir dann auf, dass ich die Anführungszeichen vergessen hatte ! =hl("A1") :?

Mit Anführungszeichen funktioniert's prima ! :D

Also nochmals vielen Dank !!

Gruss,
Rakuda

Re: Sprungziel aus Hyperlink extrahieren

Verfasst: Sa, 30.08.2014 18:15
von Stephan
Mit Anführungszeichen funktioniert's prima !
Die Anführungszeichen sind keine Nachläsigkeit von mir sondern eine technische Notwendigkeit weil OO nicht das Zellobjekt als Parameter akzeptiert, was bei der konkreten FRagestellung heißt Du kämst nur an den sichtbaren Text des Links.

Man könnte höchstens beispielsweise so aufrufen:

=hl(ZELLE("ADRESSE"; A1))


Gruß
Stephan

Re: Sprungziel aus Hyperlink extrahieren

Verfasst: Sa, 30.08.2014 19:05
von Rakuda
Stephan hat geschrieben: =hl(ZELLE("ADRESSE"; A1))
... Danke für den Hinweis, damit kann man auch die Formel in andere Zellen übertragen - praktisch !

Gruss,
Rakuda