Sprungziel aus Hyperlink extrahieren

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Rakuda
Beiträge: 4
Registriert: Sa, 30.08.2014 12:03

Sprungziel aus Hyperlink extrahieren

Beitrag 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
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Sprungziel aus Hyperlink extrahieren

Beitrag 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)
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Rakuda
Beiträge: 4
Registriert: Sa, 30.08.2014 12:03

Re: Sprungziel aus Hyperlink extrahieren

Beitrag 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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Sprungziel aus Hyperlink extrahieren

Beitrag 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
Rakuda
Beiträge: 4
Registriert: Sa, 30.08.2014 12:03

Re: Sprungziel aus Hyperlink extrahieren

Beitrag 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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Sprungziel aus Hyperlink extrahieren

Beitrag 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
Rakuda
Beiträge: 4
Registriert: Sa, 30.08.2014 12:03

Re: Sprungziel aus Hyperlink extrahieren

Beitrag 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
Antworten