Seite 1 von 1
Re: Über Optionsfeld Zeilen per Makro einblenden
Verfasst: Do, 25.02.2016 10:20
von mikeleb
Hallo,
ein bisschen Geduld ...
Dein Codeschnipsel deutet auf MS VBA hin, was unter LO so nicht funktionieren wird.
Anbei mal ein Beispiel mit 5 Optionsfeldern. Je nachdem, welches Optionsfeld angewählt wird, werden die entsprechenden Zeilen ein- bzw. ausgeblendet. Welche Zeilen es betrifft ist im Makro festgelegt.
Re: Über Optionsfeld Zeilen per Makro einblenden
Verfasst: So, 28.02.2016 14:15
von mikeleb
Hallo,
ich habe das Problem mal zum Anlass genommen, mein erstes Python-Makro zu schreiben.
Code: Alles auswählen
def p_einblenden(oevent):
# Welches Optionsfeld wurde angeklickt?
sname=oevent.Source.Model.Name
# Nummer des Optionsfeldes?
nr=int(sname[-1:])
# Zugriff auf das Dokument, Tabelle1
oDoc= XSCRIPTCONTEXT.getDocument()
oTab=oDoc.Sheets.getByIndex(0)
# Festlegung der Zeilen, ein Bereich für jedes Optionsfeld, jeweils erste und letzte Zeile oder nur einzelne Zeile
zeilen=((11,13),(15,17),(19,23),(25,),(30,34))
# Durchlauf durch alle Bereiche, ein- bzw- ausblenden
z=0
for i in zeilen:
z=z+1
for k in range(i[0],i[len(i)-1]+1):
oTab.Rows.getByIndex(k-1).IsVisible=(z==nr)
Wahrscheinlich lässt sich das ein oder andere noch effektiver lösen, aber es funktioniert. Hurra!
Dank an preklov und karolus (
viewtopic.php?f=18&t=66796)!
Re: Über Optionsfeld Zeilen per Makro einblenden
Verfasst: Mo, 29.02.2016 02:09
von Karolus
Hallo
Ja, es geht nochwas:
Schreibt ins Feld "Zusatzinfo" der Optionsbuttons entsprechende Addressbereichseinträge
für LO
13:17 →Zeile 13 bis 17
Aoo
A13:A17
! auch bei einzelnen Zellen
25:25 mit Doppelpunkt !!
Code: Alles auswählen
def einblenden(event):
buttons = event.Source.Model.Parent
doc = buttons.Parent.Parent
sheet = doc.CurrentSelection.Spreadsheet
for i in range( buttons.Count):
button = buttons.getByIndex(i)
tag = button.Tag
state = button.State
sheet.getCellRangeByName(tag).Rows.IsVisible = state
Ps: Ich freue mich riesig wenn ein paar Leute, endlich mal anfangen mit python, lasst euch bitte nicht abschrecken von meinen Verbesserungsvorschlägen.
Ich hatte gehofft über das Ereignis `Status geändert` auch die `for...`-Schleife einzusparen,aber leider wird die Funktion nur bei Statuserhalt ausgeführt nicht jedoch wenn ein Button den Status verliert.
Re: Über Optionsfeld Zeilen per Makro einblenden
Verfasst: Mo, 29.02.2016 18:40
von mikeleb
Hallo karolus,
von meinen Verbesserungsvorschlägen
Ich bitte ausdrücklich darum!
