Seite 1 von 1
Zeile löschen wenn Spalte 0
Verfasst: Mo, 10.09.2007 08:42
von Stancer
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
Re: Zeile löschen wenn Spalte 0
Verfasst: Mo, 10.09.2007 11:47
von Toxitom
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
Re: Zeile löschen wenn Spalte 0
Verfasst: Mo, 10.09.2007 11:51
von Stancer
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
Re: Zeile löschen wenn Spalte 0
Verfasst: Mo, 10.09.2007 12:52
von Toxitom
Hey Stancer,
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
Gruss
Thomas
Re: Zeile löschen wenn Spalte 0
Verfasst: Mo, 10.09.2007 13:05
von Stancer
Hallo Thomas,
Danke für deine schnelle Hilfe.
Hat einwandfrei funktioniert.
Mit dankenden Grüßen Stancer