Morgen zusammen,
Ich habe in einem Writer dokument 3 Tabellen erzeugt (Tabelle 4,5,6) mit jeweils 4 Spalten. Das writerdokument habe ich als Vorlage gespeichert. Nun wollte ich wissen ob und wie es möglich ist, per Makro alle Zeilen(nicht nur Inhalte sonder die komplette Zeile) in allen drei Tabellen zu löschen in der in der Spalte "Anzahl" der Wert 0 steht.
Vieln Dank für alle Antworten.
MfG Stancer
Zeile löschen wenn Spalte 0
Moderator: Moderatoren
Zeile löschen wenn Spalte 0
OpenOffice portable 2.1, Win XP
Re: Zeile löschen wenn Spalte 0
Hey Stancer,
es ist möglich
Ohne weitere Details zu wissen, hier nur der Weg:
Tabellen haben einne eigenen Namen. Dadurch erhälst du das Objekt (über oDoc.getTextTables().getByName("xxx") ).
Die Tabellen haben ähnliche Strukturen wie Calc-Tabellen - also kannst du die Zellen einzeln ansprechen und den Wert auslesen. Über entsprechende Schleifen kannst du also alle Zeilen durchgehen , den Wert auslesen und wenn =0, dann die Zeile über ihren Index löschen (Methode: remove by Index(iIndex, iAnzahl)).
Sinnvollerweise beginnst du deine Schleife also rekursiv - also von hinten. Sonst stimmen die Indizes nicht.
Ja, und bei drei tabellen läufst du das dann eben dreimal durch....
Gruss
Thomas
es ist möglich

Ohne weitere Details zu wissen, hier nur der Weg:
Tabellen haben einne eigenen Namen. Dadurch erhälst du das Objekt (über oDoc.getTextTables().getByName("xxx") ).
Die Tabellen haben ähnliche Strukturen wie Calc-Tabellen - also kannst du die Zellen einzeln ansprechen und den Wert auslesen. Über entsprechende Schleifen kannst du also alle Zeilen durchgehen , den Wert auslesen und wenn =0, dann die Zeile über ihren Index löschen (Methode: remove by Index(iIndex, iAnzahl)).
Sinnvollerweise beginnst du deine Schleife also rekursiv - also von hinten. Sonst stimmen die Indizes nicht.
Ja, und bei drei tabellen läufst du das dann eben dreimal durch....
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Zeile löschen wenn Spalte 0
Hi Thomas,
danke schonmal für deine schnelle Antwort.
Bin mit Makros leider noch nicht so bewandert das ich das allein hinbekomme
, deshalb frag ich hier . Hast du vielleicht nen Beispielcode den ich umschreiben kann.
Mehr Details: Also es handelt sich um 3 Tabellen die Tabelle 4,5 und 6 heißen. Diese wurden einfach über Einfügen-Tabelle eingefügt und mit Werten vesehen. Die erste Tabelle hat 72 Zeilen die zweite 12 und die dritte 6.
In jeder Tabelle heißt die zweite Spalte Anzahl(<B..>) und wenn diese den Wert 0 annimmt soll die gesamte Zeile gelöscht werden. Hilft das schon??
MfG Stancer
danke schonmal für deine schnelle Antwort.
Bin mit Makros leider noch nicht so bewandert das ich das allein hinbekomme

Mehr Details: Also es handelt sich um 3 Tabellen die Tabelle 4,5 und 6 heißen. Diese wurden einfach über Einfügen-Tabelle eingefügt und mit Werten vesehen. Die erste Tabelle hat 72 Zeilen die zweite 12 und die dritte 6.
In jeder Tabelle heißt die zweite Spalte Anzahl(<B..>) und wenn diese den Wert 0 annimmt soll die gesamte Zeile gelöscht werden. Hilft das schon??
MfG Stancer
OpenOffice portable 2.1, Win XP
Re: Zeile löschen wenn Spalte 0
Hey Stancer,
der folgende Code sollte es tun - zur Not entsprechend anpassen.
Gruss
Thomas
der folgende Code sollte es tun - zur Not entsprechend anpassen.
Code: Alles auswählen
Sub TabZeileLoeschen
oDoc = thisComponent
for i = 4 to 6 'Tabellennamen
oTab = oDoc.getTextTables().getByName("Tabelle" & i )
iZe = oTab.getRows().count 'Anzahl Zeilen
for n = iZe-1 to 0 step -1
if oTab.getCellByPosition(1,n).string = "0" then '2. Spalte, n-te Zeile
oTab.getRows().removeByIndex(n, 1)
end if
next
next
End Sub
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Zeile löschen wenn Spalte 0
Hallo Thomas,
Danke für deine schnelle Hilfe.
Hat einwandfrei funktioniert.
Mit dankenden Grüßen Stancer
Danke für deine schnelle Hilfe.
Hat einwandfrei funktioniert.

Mit dankenden Grüßen Stancer
OpenOffice portable 2.1, Win XP