Jede 2.te Zeile löschen.
Moderator: Moderatoren
Jede 2.te Zeile löschen.
Hallo,
ich habe gesucht aber leider nichts gefunden. Sollte das Thema also schon bestand haben, mich bitte mit der Nase draufstoßen...
Mein Problem:
Ich habe eine Liste aus Tobit mit allerlei Adressdaten exportiert und nun unter OO-Calc importiert. Leider hat er aber beim export jede Adresse zweimal exportiert und somit ist in OO auch alles doppelt vorhanden.
Nun würde ich gerne jede zweite Zeile löschen und eine Liste mit statt 1694 Einträgen eine mit 874 Zeilen vorfinden.
Wer kann mir sachdienliche Hinweise geben...??
Danke und Gruß
ich habe gesucht aber leider nichts gefunden. Sollte das Thema also schon bestand haben, mich bitte mit der Nase draufstoßen...
Mein Problem:
Ich habe eine Liste aus Tobit mit allerlei Adressdaten exportiert und nun unter OO-Calc importiert. Leider hat er aber beim export jede Adresse zweimal exportiert und somit ist in OO auch alles doppelt vorhanden.
Nun würde ich gerne jede zweite Zeile löschen und eine Liste mit statt 1694 Einträgen eine mit 874 Zeilen vorfinden.
Wer kann mir sachdienliche Hinweise geben...??
Danke und Gruß
Hallo
per Makro ? :
Gruß Karo
Die Hälfte von 1694 ist 847.Nun würde ich gerne jede zweite Zeile löschen und eine Liste mit statt 1694 Einträgen eine mit 874 Zeilen vorfinden.
per Makro ? :
Code: Alles auswählen
sub jede2teZeileloeschen
odoc=thiscomponent
mysheet=odoc.sheets(0) '1. Tabellenblatt
myrows=mysheet.getrows
for i = 1693 to 1 step -2 'index beginnt bei 0 !
'löschen Index und Anzahl
myrows.removebyindex(i,1)
next i
end sub
Sowas kann man auch filtern. Mit einem Standardfilter, der die Daten in eine neue Tabelle ausgibt und dabei Duplikate unterdrückt.
mfG
mfG
Re: Jede 2.te Zeile löschen.
Wäre es möglich zu sagen, dass ich jede nte Zeile löschen bis zu 255.
Acha hab den Beitrag von Eia nicht gesehen. Mal schauen.
edit2:Hm, keine Ahnung wie das gehen soll.
Noch eine Sache. Wenn ich zb etwas in jede nte Zeile einfuegen wollen würde zb aus der Zwischenablage oder aus einer Zelle.
Acha hab den Beitrag von Eia nicht gesehen. Mal schauen.
edit2:Hm, keine Ahnung wie das gehen soll.
Noch eine Sache. Wenn ich zb etwas in jede nte Zeile einfuegen wollen würde zb aus der Zwischenablage oder aus einer Zelle.
Re: Jede 2.te Zeile löschen.
Hallo
Vorsicht ! bei falschen Einträgen gibts ne Endlosschleife
Gruß Karo
Code: Alles auswählen
sub jede_n_te_Zeile_loeschen
odoc=thiscomponent
n = 5 'Schrittweite anpassen!
erstezeile = 4 'anpassen!
endzeile = 255 'anpassen
mysheet=odoc.sheets(0) '1. Tabellenblatt
myrows=mysheet.getrows
for i = erstezeile-1 to (endzeile-erstezeile-(int(endzeile/n))) step n-1 'index beginnt bei 0 !
'löschen Index und Anzahl
myrows.removebyindex(i,1)
next i
end sub
Gruß Karo
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)
Re: Jede 2.te Zeile löschen.
Aha, funktioniert alles gut soweit. Vielen Dank fürs Bemühen.
Geht das mit dem Einfügen auch? Also ein separates Makro.
mfG
Geht das mit dem Einfügen auch? Also ein separates Makro.
mfG
Re: Jede 2.te Zeile löschen.
Hm, funktioniert doch nicht so ganz.
n=2
erstezeile=13
endz=58
löscht er nur bis zur 21ten Zeile.
n=2
erstezeile=13
endz=58
löscht er nur bis zur 21ten Zeile.
Re: Jede 2.te Zeile löschen.
Hallo
Da die Zeilen bei jeder Löschung nach oben rutschen muss müssen die effektiven Schleifendurchgänge von der oberen Grenze abgezogen werden, passts so:
Gruß Karo
Da die Zeilen bei jeder Löschung nach oben rutschen muss müssen die effektiven Schleifendurchgänge von der oberen Grenze abgezogen werden, passts so:
Code: Alles auswählen
sub jede_n_te_Zeile_loeschen
odoc=thiscomponent
n = 2 'Schrittweite anpassen!
erstezeile = 13 'anpassen!
endzeile = 58 'anpassen
mysheet=odoc.sheets(0) '1. Tabellenblatt
myrows=mysheet.getrows
for i = erstezeile-1 to endzeile -int((endzeile - erstezeile)/n) step n-1 'index beginnt bei 0 !
'löschen Index und Anzahl
myrows.removebyindex(i,1)
next i
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)
Re: Jede 2.te Zeile löschen.
Perfekt.
Wärs noch zu viel verlangt ein kleines Dialogfenster einzubauen?
Ich habe in der Hilfe ein bisschen gestöbert, aber nicht wirklich etwas
gefunden.
Wärs noch zu viel verlangt ein kleines Dialogfenster einzubauen?
Ich habe in der Hilfe ein bisschen gestöbert, aber nicht wirklich etwas
gefunden.
Re: Jede 2.te Zeile löschen.
Nicht machbar auf die Schnelle?
Re: Jede 2.te Zeile löschen.
Hallo
Immer mit der Ruhe!
Den abzuarbeitenden Bereich bestimmst du über einen selektierten Bereich, die Schrittweite gibst du ein.
Gruß Karo
Immer mit der Ruhe!
Code: Alles auswählen
sub jede_n_te_Zeile_loeschen
with thiscomponent.currentselection().rangeaddress
erstezeile = .startrow 'erste Zeile der Selektion
endzeile = .endrow 'letzte Zeile der Selektion
mysheet = thisComponent.sheets( .sheet ) 'das sel. Tabellenblatt
end with
myrows = mysheet.getrows
n = val ( inputbox ( "jede n.te Zeile von Zeile " &_
erstezeile+1 &" bis Zeile " &_
endzeile+1 &"soll gelöscht werden" &chr(13)&_
" " & chr(13) &_
"Gib eine Schrittweite n >1 ein",, 2 ) ) 'Vorgabewert 2
if n < 2 then
msgbox ("Schrittweite zu klein")
exit sub
end if
for i = erstezeile to endzeile -int((endzeile - erstezeile)/n) step n-1
myrows.removebyindex(i,1) 'löschen Index und Anzahl
next i
end sub
Gruß Karo
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)
Re: Jede 2.te Zeile löschen.
Keine Sorge. Ich habe niemanden (dich nicht) gehezt. Nur ja, war ein klein wenig zittrig :].Immer mit der Ruhe!
vielen Dank noch einmal.
mfG
edit:Ziemlich gut. Gefällt mir sehr.
Re: Jede 2.te Zeile löschen.
Also als absolute Simpellösung:
1. Eine neue Spalte Einfügen.
2. Dann in die 1. Zeile eine "A" und in die 2. ein "B". Dann beide markieren und nach unten bis zum Ende der Einträge ziehen. Die Zellen sollten dann immer abwechselnd mit A u. B beschriftet sein.
3. Über Daten>Sortieren> diese Spalte sortieren lassen. Alle "A" stehen dann hintereinander, ebenso wie alle "B". Die doppelten Einträge sind also getrennt und man kann einen dieser Bereiche einfach löschen.
Gruß
Abbuzze
1. Eine neue Spalte Einfügen.
2. Dann in die 1. Zeile eine "A" und in die 2. ein "B". Dann beide markieren und nach unten bis zum Ende der Einträge ziehen. Die Zellen sollten dann immer abwechselnd mit A u. B beschriftet sein.
3. Über Daten>Sortieren> diese Spalte sortieren lassen. Alle "A" stehen dann hintereinander, ebenso wie alle "B". Die doppelten Einträge sind also getrennt und man kann einen dieser Bereiche einfach löschen.
Gruß
Abbuzze