Zellenwert in Kopfzeile übernehmen
Moderator: Moderatoren
Zellenwert in Kopfzeile übernehmen
Hallo Leute,
hat jemand eine Idee bzw. Lösung, wie man einen errechneten Zellenwert in einer Tabelle in die Kopfzeile des Dokumentes übernehmen kann?
Gruß,
fiz
hat jemand eine Idee bzw. Lösung, wie man einen errechneten Zellenwert in einer Tabelle in die Kopfzeile des Dokumentes übernehmen kann?
Gruß,
fiz
Re: Zellenwert in Kopfzeile übernehmen
Hi,
nicht ohne Umweg, s. folgende Beiträge hier aus dem Forum (Suchwort Kopfzeile): viewtopic.php?f=2&t=7726&p=29544&hilit=kopfzeile#p29544 und viewtopic.php?f=2&t=4062&p=15291&hilit=kopfzeile#p15291.
Gruß,
Rebecca
nicht ohne Umweg, s. folgende Beiträge hier aus dem Forum (Suchwort Kopfzeile): viewtopic.php?f=2&t=7726&p=29544&hilit=kopfzeile#p29544 und viewtopic.php?f=2&t=4062&p=15291&hilit=kopfzeile#p15291.
Gruß,
Rebecca
Re: Zellenwert in Kopfzeile übernehmen
Hallo Rebecca,
danke für die Antwort. Schade, dass es da keine einfachere Lösung gibt.
Deine zwei Links haben mir leider nicht weiter geholfen.
Der erste führt zu einem Kopfzeilentool, das mir in meiner Fragestellung nicht weiterhilft,
der zweite führt zu einem Makro das mir wohl helfen würde, aber leider liefert es bei mir einen Laufzeitfehler und ich bin nicht der "Makroheld" um zu verstehen, wie es laufen sollte und warum es nicht funktioniert.
Kann das an der OOo-Version liegen? Wenn ja, kannst Du (oder irgendwer) mir evtl. einen Hinweis geben, was an dem Makro zu ändern wäre, damit es unter OOo 2.3.1 läuft? Damit man nicht zappen muss, kopiere ich es noch einmal hier rein.
end sub
Gruß,
fiz
danke für die Antwort. Schade, dass es da keine einfachere Lösung gibt.
Deine zwei Links haben mir leider nicht weiter geholfen.
Der erste führt zu einem Kopfzeilentool, das mir in meiner Fragestellung nicht weiterhilft,
der zweite führt zu einem Makro das mir wohl helfen würde, aber leider liefert es bei mir einen Laufzeitfehler und ich bin nicht der "Makroheld" um zu verstehen, wie es laufen sollte und warum es nicht funktioniert.
Kann das an der OOo-Version liegen? Wenn ja, kannst Du (oder irgendwer) mir evtl. einen Hinweis geben, was an dem Makro zu ändern wäre, damit es unter OOo 2.3.1 läuft? Damit man nicht zappen muss, kopiere ich es noch einmal hier rein.
Code: Alles auswählen
sub Kopfzeile
odoc = thisComponent 'oder StarDesktop.getCurrentComponent()
oZellInhalt = odoc.sheets(0).getCellRangeByName("A35").value
oSeitenFormat = odoc.StyleFamilies.getByName("PageStyle").getbyName("Standard")
oSeitenFormat.HeaderIsOn = true 'Kopfzeile einschalten
oSeitenFormat.HeaderIsShared = true 'beide Seiten gleich!
oHT = oSeitenFormat.rightPageHeaderContent 'Textobjekt der Kopfzeile
oTest = oHT.CenterText 'mittlerer Textabschnitt
oText.setString(CStr(oZellInhalt)) 'Inhalt schreiben
oSeitenformat.rightPageHeaderContent = oHT 'rückschreiben
Gruß,
fiz
Re: Zellenwert in Kopfzeile übernehmen
Könnte das ein einfacher Tippfehler sein?
Vergleiche die beiden Zeilen:
und entscheide Dich für eins.
Vergleiche die beiden Zeilen:
Code: Alles auswählen
oTest = oHT.CenterText 'mittlerer Textabschnitt
oText.setString(CStr(oZellInhalt)) 'Inhalt schreiben
Re: Zellenwert in Kopfzeile übernehmen
Hallo chrk,
leider kommt das Makro gar nicht bis dahin.
Wenn es abbricht kommt folgende Fehlermeldung:
Gruß,
fiz
leider kommt das Makro gar nicht bis dahin.
Wenn es abbricht kommt folgende Fehlermeldung:
und die 4.Zeile wird gehighlighted, also diese hier:Basic Laufzeitfehler
Es ist eine Exception aufgetreten
Type: com.sun.star.container.NoSuchElementException
Message:
Code: Alles auswählen
oSeitenFormat = odoc.StyleFamilies.getByName("PageStyle").getbyName("Standard")
fiz
Re: Zellenwert in Kopfzeile übernehmen
Hey, jetzt bin ich richtig ein Bisschen stolz auf mich.
Mit der Coderei habe ich mich schon seit zwei/drei Jahren nicht mehr beschäftigt, und mit StarBasic schon gar nie.
Thomas hat sich zweimal vertippt, aber das ist nie aufgefallen, weil der ursprüngliche Fragesteller keine Rückmeldung gegeben hat.
NoSuchElementException konnte sich in der betreffenden Zeile auf zwei Elemente beziehen, und die Vorlage "Standard" existiert, aber PageStyle muss PageStyles heißen.
Und mit oTest/oText habe ich richtig gelegen, da ist er auch vor stehen geblieben, weil die Variable nicht vorbelegt war.

Mit der Coderei habe ich mich schon seit zwei/drei Jahren nicht mehr beschäftigt, und mit StarBasic schon gar nie.
Thomas hat sich zweimal vertippt, aber das ist nie aufgefallen, weil der ursprüngliche Fragesteller keine Rückmeldung gegeben hat.
Code: Alles auswählen
Sub KopfzeileAusZelle
odoc = thisComponent 'oder StarDesktop.getCurrentComponent()
oZellInhalt = odoc.sheets(0).getCellRangeByName("A1").value
oSeitenFormat = odoc.StyleFamilies.getByName("PageStyles").getByName("Standard")
oSeitenFormat.HeaderIsOn = true 'Kopfzeile einschalten
oSeitenFormat.HeaderIsShared = true 'beide Seiten gleich!
oHT = oSeitenFormat.rightPageHeaderContent 'Textobjekt der Kopfzeile
oTest = oHT.CenterText 'mittlerer Textabschnitt
oTest.setString(CStr(oZellInhalt)) 'Inhalt schreiben
oSeitenformat.rightPageHeaderContent = oHT 'rückschreiben
End Sub
Und mit oTest/oText habe ich richtig gelegen, da ist er auch vor stehen geblieben, weil die Variable nicht vorbelegt war.
Re: Zellenwert in Kopfzeile übernehmen
odoc.sheets(0) ist das Objekt für die erste Tabelle, unabhängig vom Namen.Neu28052008 hat geschrieben:Wie wird denn die Tabelle als Quelle für den Inhalt im Makro definiert ist? oZellInhalt = odoc.sheets(0); ist die 0 automatisch die Tabelle1?
Es gibt für sheets bestimmt auch noch eine .count - Methode oder ähnliches, damit könnte man die letzte Tabelle im Dokument ermitteln, wenn man da zentrale Einstellungen unterbringen möchte.
Wenn Du aber über den Namen auswählen willst, geht folgende Variante:
Code: Alles auswählen
oZellInhalt = odoc.sheets.getByName("Tabelle3").getCellRangeByName("A1").value
Re: Zellenwert in Kopfzeile übernehmen
HAllo Christian,
Wie bei dem Gast erscheint bei mir in der Kopfzeile nur eine "0"
Wenn wir da noch den tatsächlichen Zellwert von A1 reinkriegen, dann bist Du "mein Held".
Gruß,
fiz
Wie bei dem Gast erscheint bei mir in der Kopfzeile nur eine "0"
Wenn wir da noch den tatsächlichen Zellwert von A1 reinkriegen, dann bist Du "mein Held".
Gruß,
fiz
Re: Zellenwert in Kopfzeile übernehmen
Hallo fiz,
ich hab mich ganz heldenhaft durch diese Dokument gekämpft http://users.ooodev.org/~joesch/forum/calc_basic.pdf.
.value gibt nur nummerische Werte zurück, und mit solchen habe ich getestet.
Für Zeichenketten brauchst Du die .String Eigenschaft, also
ich hab mich ganz heldenhaft durch diese Dokument gekämpft http://users.ooodev.org/~joesch/forum/calc_basic.pdf.
.value gibt nur nummerische Werte zurück, und mit solchen habe ich getestet.
Für Zeichenketten brauchst Du die .String Eigenschaft, also
Code: Alles auswählen
oZellInhalt = odoc.sheets(0).getCellRangeByName("A1").String
Re: Zellenwert in Kopfzeile übernehmen
Vielen Dank Christian,
jetzt funktioniert es.
Absolut fantastisch wäre es, wenn man die Kopfzeile nun auch noch formatieren könnte.
Ich habe es mal versuchsweise mit
versucht, aber das hat nicht funktioniert.
Hat jemand einen Vorschlag, wie ich die Schrift groß und bunt kriege?
Es würde ja auch schon reichen, zu wissen wo und wie man das Standardformat der Kopfzeile ändern kann.
Gruß, fiz
jetzt funktioniert es.
Absolut fantastisch wäre es, wenn man die Kopfzeile nun auch noch formatieren könnte.
Ich habe es mal versuchsweise mit
Code: Alles auswählen
oTest.CharHeight = 24
Hat jemand einen Vorschlag, wie ich die Schrift groß und bunt kriege?
Es würde ja auch schon reichen, zu wissen wo und wie man das Standardformat der Kopfzeile ändern kann.
Gruß, fiz
Re: Zellenwert in Kopfzeile übernehmen
Ich habe inzwischen erfahren, wie man dem Standard-Tabellenblatt sagt, es möge bitte eine große rote kopfzeile produzieren.
Doch leider, wenn das makro drüber gelaufen ist, ist alles wieder beim Alten (keine schwarze Schrift)
Es muss doch möglich sein, den Zeichensatz im Makro zu definieren.
Gruß,
Fiz
Doch leider, wenn das makro drüber gelaufen ist, ist alles wieder beim Alten (keine schwarze Schrift)

Es muss doch möglich sein, den Zeichensatz im Makro zu definieren.
Gruß,
Fiz
Re: Zellenwert in Kopfzeile übernehmen
Hi Fiz,
Hilft das weiter?
Jürgen
Ist auch wirklich kein Problem. Ich habe mal den Code von Michaels Homepage genommen und den Code um den Teil der Farbformatierung für die Schrift und den Unterstrich erweitert.fiz hat geschrieben: Es muss doch möglich sein, den Zeichensatz im Makro zu definieren.
Code: Alles auswählen
sub formattextheader
Doc = thiscomponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Standard")
DefPage.HeaderIsOn = True
DefPage.FooterIsOn = True
HContent = DefPage.RightPageHeaderContent
HContent.RightText.String = "rechter text"
oCursor = Hcontent.RightText.createTextCursor()
oCursor.setPropertyValue("CharFontName", "Arial")
oCursor.setPropertyValue("CharHeight", 16)
oCursor.setPropertyValue("CharUnderline", 1) ' Unterstrich
oCursor.setPropertyValue("CharColor",RGB(236, 31, 33)) 'Schriftfarbe
HContent.LeftText.String = "linker text"
HContent.CenterText.String = "mitte"
oCursor = Hcontent.LeftText.createTextCursor()
oCursor.setPropertyValue("CharFontName", "Arial")
oCursor.setPropertyValue("CharHeight", 16)
oCursor.setPropertyValue("CharUnderline", 1) ' Unterstrich
oCursor.setPropertyValue("CharColor",RGB(236, 31, 33)) 'Schriftfarbe
DefPage.RightPageHeaderContent = Hcontent
end sub
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Zellenwert in Kopfzeile übernehmen
Hallo Jürgen,
Ich muß mich dringend einmal etwas in dies für mich ungewohnte Sprache einlesen.
Tatsächlich produziert dein Code eine rote fette Kopfzeile, aber ich schaffe es einfach nicht ihn mit dem Code von Christian zu kombinieren, so dass der Inhalt der Zelle A1 in rot erscheint.
Kannst Du (oder jemand anderes) mir da ein letztes mal helfen?
Gruß,
Maren
Ich muß mich dringend einmal etwas in dies für mich ungewohnte Sprache einlesen.
Tatsächlich produziert dein Code eine rote fette Kopfzeile, aber ich schaffe es einfach nicht ihn mit dem Code von Christian zu kombinieren, so dass der Inhalt der Zelle A1 in rot erscheint.
Kannst Du (oder jemand anderes) mir da ein letztes mal helfen?
Gruß,
Maren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Zellenwert in Kopfzeile übernehmen
Maren,
gesetzt wird der Text bspw. mit
HContent.RightText.String = "rechter text"
dort setzt Du die Zeile von Christian ein
gesetzt wird der Text bspw. mit
HContent.RightText.String = "rechter text"
dort setzt Du die Zeile von Christian ein
Code: Alles auswählen
HContent.RightText.String = _
doc.sheets.getByName("Tabelle3").getCellRangeByName("A1").getString()
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Zellenwert in Kopfzeile übernehmen
Danke Winfried,
jetzt klappt alles
und ich kann diesen Thread abschließen
Danke auch an die anderen,
Ciao,
Maren
jetzt klappt alles

Danke auch an die anderen,
Ciao,
Maren