Hallo,
ich habe schon die Suchfunktion bemüht, aber irgendwie krieg ich's trotzdem nicht hin:
Ich habe hier eine Riesentabelle mit ca. 30000 Zeilen. Ich muss diese Tabelle verkleinern, und zwar so, dass bis Zeile 10000 nur jede zehnte und ab Zeile 10000 bis 30000 nur jede hundertste Zeile übrigbleibt. Kann mir da jemand helfen?
Danke!
Zeilen löschen per Makro in Calc
Moderator: Moderatoren
Re: Zeilen löschen per Makro in Calc
Hallo spacko,
habe mal versucht deinen Wunsch umzusetzen das ist dabei heraus gekommen
du solltest das Makro aber erst an einer Kopie ! der großen original Datei auf korrekte Ausführung testen.
Es wird die aktuelle Tabelle bearbeitet.
hier eine Testdatei
habe mal versucht deinen Wunsch umzusetzen das ist dabei heraus gekommen
Code: Alles auswählen
Sub delete_some_rows
oSheet = thisComponent.sheets(0)
oDoc = thisComponent
mysheet=odoc.currentcontroller.activesheet
orows=mysheet.getrows
oCellCursor = mySheet.createCursor
oCellCursor.GotoEndOfUsedArea(False)
xRow = oCellCursor.getRangeAddress().endRow
'print xRow
Dim begindel as integer
Dim ix as integer
Dim maxcount as integer
begindel = 0
for ix = 0 to 999
begindel= begindel+1
orows.removebyindex(begindel,9)
next
maxcount = xrow - 10000
maxcount = maxcount /100
for ix = 0 to maxcount
begindel= begindel+1
orows.removebyindex(begindel,99)
next
MsgBox " habe fertig ", 48
End Sub
Es wird die aktuelle Tabelle bearbeitet.
hier eine Testdatei
Zuletzt geändert von clag am Mi, 06.10.2010 11:57, insgesamt 1-mal geändert.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Zeilen löschen per Makro in Calc
Hi clag,
Ich bin beglückt! Vielen Dank, du hast mir sehr geholfen!
Ich bin beglückt! Vielen Dank, du hast mir sehr geholfen!
Re: Zeilen löschen per Makro in Calc
Hallo
Schade,das mir der Thread letzte Woche entgangen ist - hier nochmal eine Lösung mit 8 übersichtlichen Zeilen.
Gruß Karo
Schade,das mir der Thread letzte Woche entgangen ist - hier nochmal eine Lösung mit 8 übersichtlichen Zeilen.
Code: Alles auswählen
Sub jedezehnte_jedeHunderste
with thiscomponent.sheets(0).getrows
for i = 1 to 1000 'bis Zeile 10001
.removebyindex(i,9) '9 löschen -
next ' - eine übrig lassen
for i = 1001 to 1201 'ab Zeile 10002 bis 30001
.removebyindex(i, 99) '99 löschen -
next '- eine übrig lassen
end with
End Sub
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)