Zeile ausblenden über makro
Moderator: Moderatoren
Re: Zeile ausblenden über makro
Hallo Goodn8,
ist nicht so sehr kompliziert musst nur die richtigen Schritte aufzeichnen
vielleicht hilft dir ja schon diese Beispieldatei?
um Zeile 10 auszublenden:
cursor in A1
Makro Aufzeichnung starten
markiere A10
dann Menü > Format > Zeilen > ausblenden
markiere A9
Makro Aufzeichnung beenden
einen Namen vergeben und speichern
um Zeile 10 einzublenden:
cursor in A1
Makro Aufzeichnung starten
markiere A9-A11
dann Menü > Format > Zeilen > einblenden
markiere A9
Makro Aufzeichnung beenden
einen Namen vergeben und speichern
ist nicht so sehr kompliziert musst nur die richtigen Schritte aufzeichnen
vielleicht hilft dir ja schon diese Beispieldatei?
um Zeile 10 auszublenden:
cursor in A1
Makro Aufzeichnung starten
markiere A10
dann Menü > Format > Zeilen > ausblenden
markiere A9
Makro Aufzeichnung beenden
einen Namen vergeben und speichern
um Zeile 10 einzublenden:
cursor in A1
Makro Aufzeichnung starten
markiere A9-A11
dann Menü > Format > Zeilen > einblenden
markiere A9
Makro Aufzeichnung beenden
einen Namen vergeben und speichern
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zeile ausblenden über makro
Hallo Goodn8,
dann willst du ja nicht "Zeilen ausblenden" sondern eine Filteraktion aufzeichnen
da wird es etwas schwieriger aber dafür gibt es doch die Autofilterfunktion
Hast du die schon einmal ausprobiert?
dann willst du ja nicht "Zeilen ausblenden" sondern eine Filteraktion aufzeichnen
da wird es etwas schwieriger aber dafür gibt es doch die Autofilterfunktion
Hast du die schon einmal ausprobiert?
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zeile ausblenden über makro
Hallo
Im Anhang ist ein Beispiel.
Über die linke Schaltfläche werden die Zeilen ohne Inhalt in A13:A19 ausgeblendet,
mit der rechten Schaltläche werden alle Zeilen des Bereichs eingeblendet. der Quellcode dazu:
Im Anhang ist ein Beispiel.
Über die linke Schaltfläche werden die Zeilen ohne Inhalt in A13:A19 ausgeblendet,
mit der rechten Schaltläche werden alle Zeilen des Bereichs eingeblendet. der Quellcode dazu:
Code: Alles auswählen
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.CurrentSelection.Spreadsheet
cellrange = sheet.getCellRangeByName('A13:A19')
def iterate(iterable):
it = iterable.createEnumeration()
while it.hasMoreElements():
yield it.nextElement()
def hide_empty_rows(*_):
empties = cellrange.queryEmptyCells()
for empty_range in iterate(empties):
empty_range.Rows.IsVisible = False
def unhide(*_):
cellrange.Rows.IsVisible = True
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Zeile ausblenden über makro
Hallo Goodn8,
hier noch ein anderes Beispiel wie man per Button Filterergebnisse bekommt.
hilft das weiter?
hier noch ein anderes Beispiel wie man per Button Filterergebnisse bekommt.
hilft das weiter?
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zeile ausblenden über makro
Hallo Goodn8,
wenn dir die angebotenen Lösungswege nicht das gewünschte Ergebnis liefern,
musst du schon etwas präziser beschreiben was du unter welchen Bedingungen erreichen willst.
wenn dir die angebotenen Lösungswege nicht das gewünschte Ergebnis liefern,
musst du schon etwas präziser beschreiben was du unter welchen Bedingungen erreichen willst.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zeile ausblenden über makro
Karolus hat es mit seiner Datei schon auf den Punkt gebracht.
Wie in seiner Beispieldatei möchte ich das die nicht ausgefüllten Reihen einfach ausgeblendet werden wenn ich auf die Schaltfläche 1 drücke und wieder eingeblendet wenn ich auf die 2. drücke =)
Wenn mir jetzt noch jemand erklären kann wie ich das in meine Datei einpflegen kann bin ich schon mehr als glücklich
Wie in seiner Beispieldatei möchte ich das die nicht ausgefüllten Reihen einfach ausgeblendet werden wenn ich auf die Schaltfläche 1 drücke und wieder eingeblendet wenn ich auf die 2. drücke =)
Wenn mir jetzt noch jemand erklären kann wie ich das in meine Datei einpflegen kann bin ich schon mehr als glücklich

Re: Zeile ausblenden über makro
Hallo
Ich hab dir das ganze noch um eine Installierfunktion erweitert:
über die Schaltflaäche im angehängten Dokument wird das Script in dein Benutzerverzeichnis kopiert.
Importieren in dein Ziel-Dokument kannst du dann wiederrum per
→Extras→Makros→Makros verwalten→Python→Meine Makros→Leerzeilen_ausblenden→→install_user_or_embed
Wenn du beim erstellen der Schaltflächen und der Verküpfung zu den beiden Funktionen Fragen hast - dann frage.
Karolus
Ich hab dir das ganze noch um eine Installierfunktion erweitert:
Code: Alles auswählen
import uno
from os import path
ctx = uno.getComponentContext()
servicemanager = ctx.ServiceManager
createUnoService = servicemanager.createInstance
file_access = createUnoService("com.sun.star.ucb.SimpleFileAccess")
pathsubstution = createUnoService("com.sun.star.util.PathSubstitution")
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.CurrentSelection.Spreadsheet
cellrange = sheet.getCellRangeByName('A13:A19')
def install_user_or_embed(*_):
"""
"""
if __file__.startswith('file'):
factory = createUnoService(
"com.sun.star.frame."
"TransientDocumentsDocumentContentFactory")
pythonfolder = (
'{}/Scripts/python'.format(factory
.createDocumentContent(doc)
.getIdentifier()
.ContentIdentifier
))
else:
pythonfolder = pathsubstution.substituteVariables('$(user)/Scripts/python/',0)
filename = path.basename(__file__)
if not file_access.isFolder( pythonfolder):
file_access.createFolder(pythonfolder)
file_access.copy(__file__, path.join( pythonfolder, filename))
def iterate(iterable):
it = iterable.createEnumeration()
while it.hasMoreElements():
yield it.nextElement()
def hide_empty_rows(*_):
empties = cellrange.queryEmptyCells()
for empty_range in iterate(empties):
empty_range.Rows.IsVisible = False
def unhide(*_):
cellrange.Rows.IsVisible = True
Importieren in dein Ziel-Dokument kannst du dann wiederrum per
→Extras→Makros→Makros verwalten→Python→Meine Makros→Leerzeilen_ausblenden→→install_user_or_embed
Wenn du beim erstellen der Schaltflächen und der Verküpfung zu den beiden Funktionen Fragen hast - dann frage.
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Zeile ausblenden über makro
Entschuldigt bitte die lange Abwesenheit,
ich habe dein Script jetzt einbauen können Karolus, vielen Dank dafür schon einmal!
ich habe jetzt das Formular fertig formatiert und leider passt es nicht mehr so ganz mit den Zeihlen,
besteht denn die Möglichkeit, dass ich das im Code selbständig ändern kann? wenn ich auf Makros verwalten gehe, kann ich diese leider nur ausführen lassen, aber nicht bearbeiten?!
Oder mache ich vielleicht etwas falsch?
LG Goodn8
ich habe dein Script jetzt einbauen können Karolus, vielen Dank dafür schon einmal!
ich habe jetzt das Formular fertig formatiert und leider passt es nicht mehr so ganz mit den Zeihlen,
besteht denn die Möglichkeit, dass ich das im Code selbständig ändern kann? wenn ich auf Makros verwalten gehe, kann ich diese leider nur ausführen lassen, aber nicht bearbeiten?!
Oder mache ich vielleicht etwas falsch?
LG Goodn8
Re: Zeile ausblenden über makro
Hallo Goodn8, und Nachfolgende
hatte anfänglich deine Frage missverstanden.
Hier noch ein Beispiel in OO Basic
viel Spass
hatte anfänglich deine Frage missverstanden.
Hier noch ein Beispiel in OO Basic
viel Spass
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zeile ausblenden über makro
Hallo
Suche nach der Kopie: <dein Benutzerverzeichnis>/Scripts/python/leerzeichen_ausblenden.py
Öffne die Datei mit einem einfachen Texteditor, und ändere den Addressbereich in der Zeile:
speichere die Datei , und führe den Schritt zum Einbetten in die Zieldatei nochmal aus.
Speichere und schliesse danach die Zieldatei und starte sie neu.
Nein, du machst nichts falsch, über die GUI kannst du python-scripte nicht direkt zum bearbeiten öffnen.Goodn8 hat geschrieben:Entschuldigt bitte die lange Abwesenheit,
ich habe dein Script jetzt einbauen können Karolus, vielen Dank dafür schon einmal!
ich habe jetzt das Formular fertig formatiert und leider passt es nicht mehr so ganz mit den Zeihlen,
besteht denn die Möglichkeit, dass ich das im Code selbständig ändern kann? wenn ich auf Makros verwalten gehe, kann ich diese leider nur ausführen lassen, aber nicht bearbeiten?!
Oder mache ich vielleicht etwas falsch?
Suche nach der Kopie: <dein Benutzerverzeichnis>/Scripts/python/leerzeichen_ausblenden.py
Öffne die Datei mit einem einfachen Texteditor, und ändere den Addressbereich in der Zeile:
Code: Alles auswählen
cellrange = sheet.getCellRangeByName('A13:A19')
Speichere und schliesse danach die Zieldatei und starte sie neu.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Zeile ausblenden über makro
Hallo
@clag:
Anscheinend weisst du nicht was du tust, und dein Code funktioniert rein zufällig, du hättest da genausogut schreiben können:
richtig respective besser wäre aber:
Code: Alles auswählen
if mysheet.getCellByPosition(0,i).string = empty then
Anscheinend weisst du nicht was du tust, und dein Code funktioniert rein zufällig, du hättest da genausogut schreiben können:
Code: Alles auswählen
if mysheet.getCellByPosition(0,i).string = ganzvoll then
Code: Alles auswählen
if mysheet.getCellByPosition(0,i).string = ganz_andere_undefinierte_variable then
Code: Alles auswählen
if isEmpty(mysheet.getCellByPosition(0,i).string ) then
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Zeile ausblenden über makro
Auch richtig clag!
Ich verstehe glaube ich den Ansatz der Sprache, wie gesagt ich kenne mich ein bissschen mit web Programmierung aus.
Allerdings nicht mit OO.
Ich habe s jetzt hin bekommen das er halbwegs funktioniert.
hier mal mein geändertes Script:
Ich habe versucht die Funktion auf B14:B20 zu beschränken.
Allerdings nimmet mir das Makro so auch die Summe aus E21 weg, (ich denke weil B21leer ist) was ich nicht verstehe.
wo liegt mein Denkfehler?
Ich verstehe glaube ich den Ansatz der Sprache, wie gesagt ich kenne mich ein bissschen mit web Programmierung aus.
Allerdings nicht mit OO.
Ich habe s jetzt hin bekommen das er halbwegs funktioniert.
hier mal mein geändertes Script:
Code: Alles auswählen
REM ***** BASIC *****
Sub HideOrShowNull
myDoc = thisComponent
mySheet = myDoc.sheets(0)
myButton = mySheet.drawpage.forms.getbyIndex(0).getbyname("Schaltfläche 1")
if myButton.label = "leere Zeilen verbergen" then
for i=14 to 20
if mysheet.getCellByPosition(1,i).string = empty then
myZeile = mySheet.getrows().getByIndex(i)
myZeile.isVisible = false
end if
next
myButton.label = "alle Zeilen anzeigen"
myButton.BackgroundColor = rgb(255,144,144)
else
range = mySheet.getCellRangebyPosition(1,14,1,20)
myrows = range.getRows()
myrows.isVisible = true
myButton.label = "leere Zeilen verbergen"
myButton.BackgroundColor = rgb(128,255,128)
end if
End Sub
Allerdings nimmet mir das Makro so auch die Summe aus E21 weg, (ich denke weil B21leer ist) was ich nicht verstehe.
wo liegt mein Denkfehler?
Re: Zeile ausblenden über makro
Hi Karolus.
Jetzt werde ich mich wohl total blamieren....
Also ich wenn ich den open Office Ordner durchsuche finde ich diese Datei leider nicht...
C:\Program Files (x86)\OpenOffice 4\presets\Scripts ist leer
und in meinem User Ordner ist leider kein Script Ordner...

Jetzt werde ich mich wohl total blamieren....
Also ich wenn ich den open Office Ordner durchsuche finde ich diese Datei leider nicht...
C:\Program Files (x86)\OpenOffice 4\presets\Scripts ist leer
und in meinem User Ordner ist leider kein Script Ordner...

Re: Zeile ausblenden über makro
Hallo Goodn8,
da ist ein kleiner Fehler in deiner Variante,
die Zählung der Zeilen und Spalten beginnt bei 0
für B14:B20 ~ 1,13,1,19
und das von mir eingesetzte
ersetze
weil empty kann man so nicht anwenden weil schon belegt.
da ist ein kleiner Fehler in deiner Variante,
die Zählung der Zeilen und Spalten beginnt bei 0
für B14:B20 ~ 1,13,1,19
und das von mir eingesetzte
Code: Alles auswählen
if mysheet.getCellByPosition(1,i).string = empty then
Code: Alles auswählen
if mysheet.getCellByPosition(1,i).string = "" then
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zeile ausblenden über makro
Hallo Karolus,
bei dir möchte ich mich für deinen "so freundlichen und relaxten " Hinweis bedanken,
das mir ein kleines Missgeschick im Code unterlaufen ist.
Dieses kann man natürlich wenn man es braucht so breittreten wie du es getan hast,
man muss das aber nicht tun. Ich hoffe es hat dir etwas gegeben.
Ein simpler Satz wie,
Hey clag "empty" kann nicht als Variable genutzt werden, hätte es auch getan.
bei dir möchte ich mich für deinen "so freundlichen und relaxten " Hinweis bedanken,
das mir ein kleines Missgeschick im Code unterlaufen ist.
Dieses kann man natürlich wenn man es braucht so breittreten wie du es getan hast,
man muss das aber nicht tun. Ich hoffe es hat dir etwas gegeben.
Ein simpler Satz wie,
Hey clag "empty" kann nicht als Variable genutzt werden, hätte es auch getan.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox