ursprünglich hatte ich diese Frage im Office-Brett gestellt, aber @littlepinguin brachte mich indirekt auf die Idee, das man das Problem vielleicht besser per sed/bash/… -Skript lösen kann. Da bin ich hier wohl richtiger.
Also:
in einer Tabelle/Textdatei möchte ich gerne automatisch fehlende Zeilen/Leerzeilen eintragen. Es sind Notizen zu Kalendertagen in Zeilen, aber fehlende Tage sollen eine neue, leere Zeile erhalten.
Ich könnte auch eine neue Spalte/Textdatei mit allen aufsteigenden Zahlen die ich haben will erzeugen und dann müsste das Script den Inhalt der tatsächlichen Zeile „nur noch“ in die richtige Zeile einsortieren.
Das sähe so aus wenn man als Datum die „Excelzahl“ vorliegen hat.
Sub Main
Dim alt as long
Dim b as long
Dim i
alt = ThisComponent.Sheets(0).getCellByPosition(0,0).value
for i = 1 to 400
b = ThisComponent.Sheets(0).getCellByPosition(0,i).value
if b<>0 then
if alt+1<b then
ThisComponent.Sheets(0).Rows.insertByIndex(i,b-alt-1)
end if
alt=b
else
alt=alt+1
end if
Next i
End Sub
Wenn es denkbar wäre, dass die Liste nicht korrekt ist, also irgendwo ein Datum mal zurück springt oder gleich bleibt, müsste man das noch abfangen.
Die 400 einfach der Länge der fertigen Tabelle anpassen. Wenn das regelmäßig eingesetzt wird, könnte man das mit 1-2 Zeilen mehr noch alles bissl schöner machen.
cool, eine LINUX-like-Lösung ist natürlich auch sehr schön und ich werde die auch ausprobieren (heute aber nicht mehr ). Tatsächlich sind die „Rohdaten“ auch eine Textdatei, die dann von mir in die Tabellenkalkulation eingepflegt wurden.