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.
Über Optionsfeld Zeilen per Makro einblenden
Moderator: Moderatoren
Re: Über Optionsfeld Zeilen per Makro einblenden
- Dateianhänge
-
- makro_optionsfelder.ods
- (9.81 KiB) 249-mal heruntergeladen
Gruß,
mikeleb
mikeleb
Re: Über Optionsfeld Zeilen per Makro einblenden
Hallo,
ich habe das Problem mal zum Anlass genommen, mein erstes Python-Makro zu schreiben.
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)!
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)
Dank an preklov und karolus (viewtopic.php?f=18&t=66796)!
- Dateianhänge
-
- makro_einblenden_py.ods
- (12.19 KiB) 139-mal heruntergeladen
Gruß,
mikeleb
mikeleb
Re: Über Optionsfeld Zeilen per Makro einblenden
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 !!
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.
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
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.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Über Optionsfeld Zeilen per Makro einblenden
Hallo karolus,
Ich bitte ausdrücklich darum!von meinen Verbesserungsvorschlägen
Gruß,
mikeleb
mikeleb