💚 BITTE helfen Sie uns NOCH HEUTE mit einer SPENDE 💚
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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
Beiträge: 1659
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
Beiträge: 2867
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 24.2.2.2 (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
Beiträge: 1659
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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten