❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

ZellenName aus 2 Zelleninhalten erzeugen

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: ZellenName aus 2 Zelleninhalten erzeugen

Beitrag von mikele » Fr 29. Jun 2018, 13:57

Hallo,
also schreibst du in B2:

Code: Alles auswählen

=a2&"2"&b1
Wo ist jetzt die Frage?
Gruß,
mikele

Mondblatt24
* LO-Experte *
Beiträge: 3376
Registriert: Fr 3. Mär 2017, 17:12

Re: ZellenName aus 2 Zelleninhalten erzeugen

Beitrag von Mondblatt24 » Sa 30. Jun 2018, 16:40

Hallo,
Der NAME der Zelle soll so heissen
siehe hier

Gruß Peter
Win 11 (x64) ▪ LO 25.8.1.1 (x64) ▪ AOO Portable 4.1.15
Wenn Eure Frage zutreffend beantwortet wurde, seid so nett und fügt dem Betreff der Eingangsfrage [GELÖST] hinzu.

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: ZellenName aus 2 Zelleninhalten erzeugen

Beitrag von mikele » So 1. Jul 2018, 13:27

Hallo,
es gibt meines Wissens keine integrierte Funktion, die einem Bereich einen Namen vergibt.
Wenn du also automatisch einer Zelle einen Namen verpassen möchtest musst du eine benutzterdefinierte Funktion als Makro programmieren.
Beispielsweise so:

Code: Alles auswählen

Function zellname_udf (itab as integer, izeile as integer, ispalte as integer, sText as string) as string
	oDoc=Thiscomponent
	if oDoc.NamedRanges.hasByName(sText) then oDoc.NamedRanges.removeByName(sText)
	oZelle=oDoc.sheets(itab-1).getcellbyposition(ispalte-1,izeile-1)
	odoc.NamedRanges.addNewByName(sText,oZelle.AbsoluteName,oZelle.CellAddress,0)
	zellname_udf=sText
End Function
Der Aufruf erfolgt dann so

Code: Alles auswählen

=zellname_udf(Tabelle();Zeile();Spalte();"der Wunschname")
Die ersten drei Parameter dienen nur dazu, dem Makro mitzuteilen, um welche Zelle es sich handelt, denn soweit ich weiß, gibt es keine Möglichkeit im Makro herauszufinden, aus welcher Zelle der Funktionsaufruf kommt.
ABER:
Der NAME der Zelle soll so heissen nicht der Inhalt ... also in b2 wird =a2&"2"&b1 erzeugt und dann wird das der NAME von dieser Zelle, also zum Beispiel EUR2USD der kann dann in einer Formel verwendet werden =c3*EUR2USD
Wie soll das funktionieren. Nach deiner Beschreibung enthält die Zelle B2 dann den Text "EUR2USD" und die Zelle hat auch diesen Namen. Wenn du dann

Code: Alles auswählen

=c3*EUR2USD
in eine andere Zelle schreibst, führt das zu einem Fehler! Du willst dann nämlich eine Zahl (aus C3) mit einem Text multiplizieren und das funktioniert nicht.
Die Formel

Code: Alles auswählen

=c3*EUR2USD
hätte nur Sinn, wenn in der Zelle "EUR2USD" der Umrechnungskurs stehen würde.
Dazu könnte man die benutzerdefinierte Funktion etwas umstricken:

Code: Alles auswählen

Function zellname_udf (itab as integer, izeile as integer, ispalte as integer, dWert as double, sText as string) as double
	'
	'Parameter:
	'itab ... Tabelle der aufrufenden Zelle
	'izeile ... Zeile der aufrufenden Zelle
	'iSpalte ... Spalte der aufrufenden Zelle
	'dWert ... Wert, den die Zelle haben soll
	'sText ... Name, den die Zelle haben soll
	'
	oDoc=Thiscomponent
	if oDoc.NamedRanges.hasByName(sText) then oDoc.NamedRanges.removeByName(sText)
	oZelle=oDoc.sheets(itab-1).getcellbyposition(ispalte-1,izeile-1)
	odoc.NamedRanges.addNewByName(sText,oZelle.AbsoluteName,oZelle.CellAddress,0)
	zellname_udf=dWert
End Function
Der Aufruf erfolgt dann z. B. so:

Code: Alles auswählen

=zellname_udf(Tabelle();Zeile();Spalte();1,15;"EURO2USD")
Im Ergebnis würde in der Zelle die Zahl 1,15 stehen und hätte den Namen "EURO2USD".
Gruß,
mikele


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten