Seite 1 von 1

[GELÖST] Tabellenname einer anderen Tabelle einfügen

Verfasst: Mi 12. Nov 2014, 16:49
von wartburgritter
Ich habe ein Calcdokument mit 4 Tabellen. In der 4. Tabelle möchte ich die Tabellennamen der anderen 3 Tabellen in zellen einfügen. Habe nur gefunden wie ich den Tabellennamen der aktuellen Tabelle einfügen kann.

http://www.der-lifehacker.de/2011/04/li ... en-lassen/

Hab versucht das auf die anderen Tabellen zu erweitern, aber keinen Erfolg gehabt.

gruss bernd

Re: Tabellenname einer anderen Tabelle einfügen

Verfasst: Mi 12. Nov 2014, 17:42
von lorbass
Ich fürchte, du wirst dich mit der Aufgabe an die Kollegen im Bereich LibreOffice Programmierung wenden müssen.

Gruß
lorbass

Re: Tabellenname einer anderen Tabelle einfügen

Verfasst: Mi 12. Nov 2014, 18:18
von lessger
Hallo Wartburgritter,

wenn Du wirklich nur den Tabellennamen extrahieren willst, kannst Du folgende Formel nutzen:

Code: Alles auswählen

=WECHSELN(LINKS(ZELLE("Adresse";TabelleX.A1);FINDEN(".";ZELLE("Adresse";TabelleX.A1))-1);"$";"")
TabelleX.A1 ist dabei durch einen beliebigen Bezug in die gewünschte Tabelle zu ersetzen (an beiden Stellen).

Du kannst aber auch schlicht den Tabellennamen reinschreiben. Der einzige Vorteil der Formel ist, daß sich der Name aktualisiert, wenn Du das Tabellenblatt umbenennst.

Grüße
Gerhard

Re: Tabellenname einer anderen Tabelle einfügen

Verfasst: Mi 12. Nov 2014, 18:40
von lorbass
lessger hat geschrieben:TabelleX.A1 ist dabei durch einen beliebigen Bezug in die gewünschte Tabelle zu ersetzen (an beiden Stellen).
Aha, du ermittelst also den Tabellennamen, indem du ihn in die Lösungsformel schreibst. Da muss man erst mal drauf kommen… Nur ist der Name ja dummerweise lt. Aufgabenstellung gar nicht bekannt.

Gruß
lorbass

Re: Tabellenname einer anderen Tabelle einfügen

Verfasst: Mi 12. Nov 2014, 19:18
von lessger
Nein, lorbass, ich schreibe Ihn nicht rein, sondern ich benutze eine Referenz in die Tabelle und LO schreibt Ihn rein.

Das funktioniert nur dann nicht, wenn es die Tabelle noch gar nicht gibt. Dann wüßte ich aber auch nicht, wie das mit einem Makro zu lösen wäre.

Natürlich ist es einfacher den Tabellennamen direkt reinzuschreiben. Außer, er ändert sich während der weiteren Bearbeitung. Mit der genannten Vorgehensweise wird er dann automatisch aktualisiert, da LO die Zellreferenzen aktualisiert. Beim Eintragen des Tabellennamens als Text von Hand würde er nicht aktualisiert.

Welches Problem der Threadersteller genau lösen will, ist der kurzen Beschreibung halt nicht zu entnehmen. Also möge er selber gucken, ob er die Lösung brauchen kann.

Grüße
Gerhard

Re: Tabellenname einer anderen Tabelle einfügen

Verfasst: Mi 12. Nov 2014, 20:03
von wartburgritter
lessger hat geschrieben:

Code: Alles auswählen

=WECHSELN(LINKS(ZELLE("Adresse";TabelleX.A1);FINDEN(".";ZELLE("Adresse";TabelleX.A1))-1);"$";"")
TabelleX.A1 ist dabei durch einen beliebigen Bezug in die gewünschte Tabelle zu ersetzen (an beiden Stellen).
Danke
lessger hat geschrieben:Der einzige Vorteil der Formel ist, daß sich der Name aktualisiert, wenn Du das Tabellenblatt umbenennst.
Genau darum geht es.

Allerdings aktualisieren sich die Zellen nicht, auch nicht nach Extras --> Zellinhalte neu berechnen.
Wird das Dokument gespeichert, geschlossen und wieder geöffnet sind die Tabellennamen in den Zellen aktualisiert. Funktioniert sogar mit Leerzeichen !!!

Vielen Dank, grüsse Bernd

Re: [gelöst] Tabellenname einer anderen Tabelle einfügen

Verfasst: Mi 12. Nov 2014, 20:57
von lessger
Bei automatischer Neuberechnung werden nur ausgewählte Zellen neu berechnet. Nämlich die, von denen Calc meint, sie wären von der Änderung betroffen. Die Beispielformel würde neu berechnet, wenn sich Zelle TabelleX.A1 ändert. Mit Strg+Umschalt+F9 wird alles neu berechnet. Versuch mal das.

Wenn's wirklich ganz automatisch gehen soll:

Du kannst in der Formel ZUFALLSZAHL oder JETZT unterzubringen. Aber dann wird die eh schon lange Formel noch "gruseliger".

Z.B.:

Code: Alles auswählen

=WENN(JETZT()>0;WECHSELN(LINKS(ZELLE("Adresse";TabelleX.A1);FINDEN(".";ZELLE("Adresse";TabelleX.A1))-1);"$";""))
Erläuterung: einige Funktionen (JETZT(), ZUFALLSZAHL()) lösen immer eine neu Berechnung aus. Und JETZT() ist immer größer 0, beeinflußt also das Ergebnis der Formel nicht.

Oder Du schreibst eine Funktion wie JETZT() in die referenzierte Zelle (also hier TabelleX.A1). Gleiches Prinzip.

Übrigens funktioniert die Formel nicht, wenn Du einen "." im Tabellennamen hast. Die Formel nutzt nämlich den ersten Punkt um das Ende des Tabellennamens zu finden. Wenn das ein Problem ist, mußt Du ein anderes Kriterium nutzen. Z.B. ".$" (erster Parameter von FINDEN):

Code: Alles auswählen

WECHSELN(LINKS(ZELLE("Adresse";TabelleX.A1);FINDEN(".$";ZELLE("Adresse";TabelleX.A1))-1);"$";"")
Aber auch das geht schief, wenn ".$" im Tabellennamen vorkommt.

Grüße
Gerhard

Re: [gelöst] Tabellenname einer anderen Tabelle einfügen

Verfasst: Do 13. Nov 2014, 09:03
von wartburgritter
lessger hat geschrieben:... Mit Strg+Umschalt+F9 wird alles neu berechnet. Versuch mal das...
Funktioniert, Sehr gut !

Danke für die weiteren Tipps und die Erläuterungen. Gruss Bernd !