Makro-Korrektur: Calc-Zeilen bei erfüllter Bedingung löschen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

AndreasMeier
Beiträge: 6
Registriert: Fr, 12.08.2011 12:37

Makro-Korrektur: Calc-Zeilen bei erfüllter Bedingung löschen

Beitrag von AndreasMeier »

Hallo zusammen,

ich hab hier ein Makro gefunden, mit ich Zeilen aus einer Calc-Tabelle ausblenden kann, wenn eine bestimmte Bedingung erfüllt ist.
Das funktioniert erstmal wunderbar!

Jetzt ist es aber so, dass es eigentlich besser wäre, die Zeilen richtig zu löschen anstatt sie "nur" auszublenden.

Das Ausblenden geht mit diesem Makro:

Code: Alles auswählen

Sub Delete_empty_positions
'die Spalte in welcher die zu prüfende Zelle steht
'hier eintragen. Spalte 1 (Spalte A) entspricht 0
vorgabe = 2
'die letzte zu prüfende Zeile hier eintragen
'Zeile 1 entspricht 0
max_zeile = 94 'prüft bis Zeile 95
For x = 16 to max_zeile 'fängt erst in Zeile 17 an
   If ThisComponent.Sheets.GetByName("Tabelle1").getCellByPosition(vorgabe, x).String = "0,0" Then
     If ThisComponent.Sheets.GetByName("Tabelle1").Rows(x).isVisible = False Then
       ThisComponent.Sheets.GetByName("Tabelle1").Rows(x).isVisible = True
     Else
       ThisComponent.Sheets.GetByName("Tabelle1").Rows(x).isVisible = False
     End if
   End if
Next x
msgbox ("Zeilen mit Menge Null wurden ausgeblendet",64)
end sub
Ich bräuchte sozusagen ein Löschkommando und einen Ersatz für das Rows(x).isVisible = True/False im o.g. Code.

Da ich in Basic-Programmierung nicht fit bin, wollte ich hier fragen, wie ich das machen kann.

Danke für jede Unterstützung !!
Gruß
Andreas
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro-Korrektur: Calc-Zeilen bei erfüllter Bedingung lös

Beitrag von komma4 »

AndreasMeier hat geschrieben:Da ich in Basic-Programmierung nicht fit bin, wollte ich hier fragen, wie ich das machen kann.
Warum nimmst Du dazu nicht: Daten>Filter>Standardfilter...>SPALTE A>Enthält>. mit Mehr Optionen>Regulärer Ausdruck und Filterergebnis ausgeben nach...



Mit Basic geht das bspw. über

Code: Alles auswählen

oSheet.Rows().RemoveByIndex( iStartRow, RowCount )
iStartRow ist der Index(!) der Zeile, RowCount die Anzahl zu löschender Zeilen.


Hilft das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten