Zeile löschen wenn Spalte 0

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zeile löschen wenn Spalte 0

Re: Zeile löschen wenn Spalte 0

von Stancer » Mo, 10.09.2007 13:05

Hallo Thomas,
Danke für deine schnelle Hilfe.
Hat einwandfrei funktioniert. :D

Mit dankenden Grüßen Stancer

Re: Zeile löschen wenn Spalte 0

von Toxitom » Mo, 10.09.2007 12:52

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

von Stancer » Mo, 10.09.2007 11:51

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

von Toxitom » Mo, 10.09.2007 11:47

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

Zeile löschen wenn Spalte 0

von Stancer » Mo, 10.09.2007 08:42

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

Nach oben