Seite 1 von 1

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

Verfasst: Mo, 12.09.2011 16:41
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

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

Verfasst: Mo, 12.09.2011 17:45
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?