Schaltfläche übergibt index des Tabellenblattes

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Schaltfläche übergibt index des Tabellenblattes

Re: Schaltfläche übergibt index des Tabellenblattes

von erikafuchs » Mi, 09.12.2015 17:15

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

Re: Schaltfläche übergibt index des Tabellenblattes

von balu » Mi, 09.12.2015 13:19

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

Re: Schaltfläche übergibt index des Tabellenblattes

von Karolus » Mi, 09.12.2015 12:57

Hallo

@Balu: warum sollte das nicht gehen, es muss doch nur eine Seitenvorlage mit der Bezeichnung und den gewünschten Eigenschaften existieren?!

Re: Schaltfläche übergibt index des Tabellenblattes

von balu » Mi, 09.12.2015 11:54

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

Re: Schaltfläche übergibt index des Tabellenblattes

von Karolus » Mi, 09.12.2015 11:06

Hallo

Code: Alles auswählen

def testbutton( event ):

    doc = event.Source.Model.Parent.Parent.Parent
    sheet = doc.CurrentSelection.Spreadsheet

Schaltfläche übergibt index des Tabellenblattes

von erikafuchs » Di, 08.12.2015 18:45

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

Nach oben