Seite 1 von 1

Tabellenblätter mit eigener Symbolleiste

Verfasst: Mi 27. Dez 2017, 13:06
von henyP
Guten Tag,
ich möchte gern eine Tabelle erstellen welche aus 4 Tabellenblättern besteht.
Jedes Tabellenblatt soll beim aktiveren des Blattes eine entsprechend zu dem Blatt erstellte Symbolleiste anzeigen.
Wechselt das Blatt sollte diese Leiste auch wechseln.

Symbolleisten "Blatt1 " ... "Blatt4" habe ich erstellt.
Ich kann zu jedem Blatt beim aktivieren ein Makro aufrufen.
Leider komme ich nun nicht weiter, da ich bei der Makroprogrammierung nicht so fit bin.
Kann mir jemand einen anderen Lösungsweg aufzeigen, welcher einfacher ist?
Über Makro-Aufnehmen geht es nicht.

Vielen Dank

Re: Tabellenblätter mit eigener Symbolleiste

Verfasst: Mi 27. Dez 2017, 13:28
von F3K Total
Hi,
lade ein Beispieldokument, dass die vier Symbolleisten enthält, hier hoch, dann hast du größere Chancen auf Hilfe.
Gruß R

Re: Tabellenblätter mit eigener Symbolleiste

Verfasst: Mi 27. Dez 2017, 17:11
von henyP
Danke für die schnelle Antwort,
habe es nun hin bekommen.

Die einfache Lösung :
speichere tabellenblattbezogene Symbolleiste in Dokument und erstelle für jedes Blatt ein Dokument.
Das Tabellenblatt sollte dann immer die entsprechende Symbolleiste haben.

Ich habe es aber über Makro gemacht:

Code: Alles auswählen

Sub Blatt1ToolBarEin
Dim sUrl as String : sUrl = "private:resource/toolbar/custom_toolbar_da969eab" 
oDocSymb=ThisComponent.CurrentController.Frame.LayoutManager
oDocSymb.showElement( sUrl )
end sub

Sub Blatt1ToolBarAus
Dim sUrl as String : sUrl = "private:resource/toolbar/custom_toolbar_da969eab" 
oDocSymb=ThisComponent.CurrentController.Frame.LayoutManager
oDocSymb.hideElement( sUrl )
end sub
... usw.
Tabellenblatt aktivieren ruft Makro "Blatt1BarEin" auf. Tabellenblatt deaktivieren entsprechend Makro Aus.

Die Custom_tollbar_xxxxx Bezeichnung kann man auf dem odf file entnehmen nachdem man es mit einem Zip Entpacker dekomprimiert. ( Vorausgesetzt es wurde die Toolbar im Dokument gespeichert.

Vielleicht braucht meine Lösung mal einer, als viel Spass damit

Re: Tabellenblätter mit eigener Symbolleiste

Verfasst: Mi 27. Dez 2017, 17:24
von F3K Total
Hi,
es geht auch besser, ohne das Suchen in der entpackten Zip-Datei, mit dem Namen der Toolbar:

Code: Alles auswählen

Sub S_Toolbar_wechseln
    odoc = thiscomponent
    osheet = ThisComponent.Currentcontroller.activeSheet
    sNumber = Right(oSheet.Name,1)'Nummer Tabellenblatt ermitteln
    sSymbolleiste = "Symbolleiste " & sNumber 'Name Symbolleiste bestimmen
    oframe = odoc.CurrentController.Frame
    olayout = oframe.LayoutManager
    sToolbar = "private:resource/toolbar/custom_toolbar"
    aElements = olayout.Elements
    for i = 0 to uBound(aElements)
       oElement = aElements(i)
       if instr(oElement.ResourceURL,sToolbar) then
           oSettings =  oElement.ConfigurationSource.getSettings( oElement.ResourceURL, false)
           if oSettings.UIName = sSymbolleiste Then 
               olayout.showElement(oElement.ResourceURL)
           else
               olayout.hideElement(oElement.ResourceURL)
           endif
       endif
    next i
End Sub
Beispieldatei anbei.
Gruß R

Re: Tabellenblätter mit eigener Symbolleiste

Verfasst: Mi 27. Dez 2017, 17:42
von henyP
Genau DAS hatte ich gesucht..
Danke :)