DP: Automatisches Zeileneinfügen in Tabelle/Textdatei

Moin,

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.

44562 - Inhalt44562
44563 - Inhalt44563
44565 - Inhalt44565
44568 - Inhalt44568

=>

44562 - Inhalt44562
44563 - Inhalt44563
44564
44565 - Inhalt44565
44566
44567
44568 - Inhalt44568

Hat hier jemand eine Idee wie man das lösen kann? Antworten gerne im Office-Brett -> Automatisches Zeileneinfügen in einem Kalender möglich? oder ggf. auch hier, ich trage die Antwort dann ggf rüber.

Dank und Grüße,
J~

hi,

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.

grüße
lipi

Da die Lösung doch ein VBA -Script wurde, habe ich die Antwort hier zusammen gefasst:

VG!
J~

Hier als awk/mawk:

awk '{if (i==$1){print;i++}else if(i){for (;i < $1;i++) {print i};print;i++}else{i=$1+1;print}}' DATEI
1 Like

cool, eine LINUX-like-Lösung ist natürlich auch sehr schön und ich werde die auch ausprobieren (heute aber nicht mehr :wink: ). Tatsächlich sind die „Rohdaten“ auch eine Textdatei, die dann von mir in die Tabellenkalkulation eingepflegt wurden.

VG!
J~