Schaltfläche übergibt index des Tabellenblattes

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Schaltfläche übergibt index des Tabellenblattes

Beitrag von erikafuchs »

Hallo Leute,
auf meinem Tabellenblatt ist eine Schltfläche. Diese schaltet per Makro die Seitenorientierung (hoch/quer) um.

Code: Alles auswählen

		osheet = Thiscomponent.sheets(0)
		osheet.PageStyle = "PortraitStyle"  

		osheet = Thiscomponent.sheets(0)
		osheet.PageStyle = "LandscapeStyle" 
Auf dem zweiten ist auch eine Schaltfläche und die Tabellenseiten kann man auch kopieren. Kann mein Klick auf die Schaltfläche auch die aufrufende Seite übertragen oder wie kann ich "sheet(0)" in "sheet(1)" usw. ändern?
Pit
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Schaltfläche übergibt index des Tabellenblattes

Beitrag von Karolus »

Hallo

Code: Alles auswählen

def testbutton( event ):

    doc = event.Source.Model.Parent.Parent.Parent
    sheet = doc.CurrentSelection.Spreadsheet
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Schaltfläche übergibt index des Tabellenblattes

Beitrag von balu »

Hallo Pit,
erikafuchs hat geschrieben: auf meinem Tabellenblatt ist eine Schltfläche. Diese schaltet per Makro die Seitenorientierung (hoch/quer) um.

Code: Alles auswählen

		osheet = Thiscomponent.sheets(0)
		osheet.PageStyle = "PortraitStyle"  

		osheet = Thiscomponent.sheets(0)
		osheet.PageStyle = "LandscapeStyle" 
Das tut sie bei mir aber nicht.

Kann mein Klick auf die Schaltfläche auch die aufrufende Seite übertragen
Da Du auf den dementsprechenden Blättern einen Button hast, dürfte das ja eigentlich kein Problem sein.
Es gibt ja für jedes Calc-Dokument (ThisComponent) die Propertie "CurrentController". Damit kann man das aktuell gültige Blatt setzen, oder aber auch abfragen.

Der CurrentController hat weitere Properties die man mit MRI oder XRAY untersuchen kann. Da Du durch den Button den Fokus auf ein bestimmtes Blatt setzt, es also aktivierst, liegt es auf der Hand auch danach zu suchen. Und das gibt dann die Propertie "ActiveSheet".

Auch ActiveSheet besitzt weitere Properties, beginnend mit "AbsoluteName". Bei einer genaueren Untersuchung wirst Du feststellen, das AbsoluteName folgendes ausgibt (als Beispiel) "$Tabelle3.$A$1:$AMJ$1048576". Klar könnte man jetzt den Tabellenblattnamen "herausbrechen", aber das geht auch einfacher in dem man bei der Propertie "ActiveSheet" weiter runterscrollt und dann auf "Name" stößt. Und schon hat man sein Ziel erreicht das aufrufende Tabellenblatt herauszubekommen.

Nun setzen wir das alles mal als Code zusammen.

Code: Alles auswählen

Sub NameAktuellesBlatt
sAktuellesBlatt = ThisComponent.CurrentController.ActiveSheet.Name
PRINT sAktuellesBlatt
end Sub
Damit wird dann immer schön der Name des aktuell aktiven Tabellenblattes ausgegeben, durch den PRINT-Befehl.

Du hattest hier im laufe der Zeit mindestens 2 Threads gehabt wo es auch um das Seitenformat ging. Und von daher müsstest Du doch auch eigentlich wissen, das dein Code so nicht funktionieren kann.
Kurz zusammengefasst:

Code: Alles auswählen

Thiscomponent.sheets(0).PageStyle = "PortraitStyle"
Das haut nicht hin.
Schau dir noch mal die Threads genau an, und Du wirst sehen das Du das "Seitenformat" (Hoch/Querformat) anders setzen musst.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Schaltfläche übergibt index des Tabellenblattes

Beitrag von Karolus »

Hallo

@Balu: warum sollte das nicht gehen, es muss doch nur eine Seitenvorlage mit der Bezeichnung und den gewünschten Eigenschaften existieren?!
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Schaltfläche übergibt index des Tabellenblattes

Beitrag von balu »

Hallo Karolus,
warum sollte das nicht gehen, es muss doch nur eine Seitenvorlage mit der Bezeichnung und den gewünschten Eigenschaften existieren?!
Oh mannnooooo! War doch noch nicht so richtig wach. *schäm*
Der Unterstrichene Teil war des Rätsels Lösung.


An Pit.
Sorry, meinerseits. Ich nehme die Behauptung, das es nicht funktioniert, hiermit zurück.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Schaltfläche übergibt index des Tabellenblattes

Beitrag von erikafuchs »

Lieber Balu,
vielen Dank alles prima!
Klar erinnere ich mich an meinen Threat zum Seitenformat, da hast du mir das auch prima erklärt und da habe ich auch wörtlich den Aufruf her.
Frohe Weihnachten.
Pit
Antworten