Seite 1 von 2
Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 09:43
von VerenaSchuster
Sehr geehrtes Forum,
ich bin leider totaler Laie und benötige Eure Hilfe.
Ich möchte in OpenOffice Calc nach jeder Zeile den gleichen Satz in die erste Zelle einfügen.
Meine Tabelle beinhaltet zwei beschriebene Spalten.
In jeder zweiten Zeile soll sich der gleiche Text (nämlich "ping -n 07 127.0.0.1") in der ersten Zelle jeder zweiten Zeile wiederholen.
So soll es aussehen:
1. Zeile BEISPIEL
ping -n 07 127.0.0.13.
3. Zeile Beispiel
ping -n 07 127.0.0.1
5. Zeile Beispiel
ping -n 07 127.0.0.1
7. Zeile Beispiel
ping -n 07 127.0.0.1
Wie bekomme ich das hin?
Ganz liebe Grüße und vielen Dank
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 10:35
von Karolus
In jeder zweiten Zeile soll sich der gleiche Text (nämlich "ping -n 07 127.0.0.1") in der ersten Zelle jeder zweiten Zeile wiederholen.
lese diesen Satz…irgendwie wiederholt sich das etwas rekursiv
Schreib halt in A2
ping -n 07 127.0.0.1
und in A4:
=A2
und ziehe die Formel nach unten.
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 11:39
von VerenaSchuster
Herzlichen Dank schon mal.
Was meinst Du mit nach unten ziehen?
Meine Tabelle hat ca. 4.000 Zeilen.
Es soll einfach nach jeder Zeile automatisch eine Zeile mit dem Text "ping -n 07 127.0.0.1" eingefügt werden bzw. automatisch dupliziert werden.
Vielen Dank
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 14:16
von Karolus
Hallo
Darf ich noch fragen weshalb dieser `ping…` 4000 mal in eine Tabellenkalkulation reingewurstelt werden soll?
Selektiere A1:A4000 und:
Code: Alles auswählen
def ping_zeilen_einfügen(*_):
doc = XSCRIPTCONTEXT.getDocument()
sel = doc.CurrentSelection
rows= sel.Rows
data = sel.DataArray
new_data = []
for row in data[:-1]:
new_data.extend((row,("ping -c7 127.0.0.1",),))
new_data.append(data[-1])
undo = doc.UndoManager
undo.enterUndoContext("Zeilen_einfügen")
for i in range(sel.RangeAddress.EndRow,0,-1):
rows.insertByIndex(i,1)
sel.Spreadsheet[0:len(new_data),0].DataArray = new_data
undo.leaveUndoContext()
nimm apso.oxt zum organisieren von python
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 14:25
von VerenaSchuster
Leider weiß ich nicht, was ich mit dem Code anstellen soll. Eine Schritt-für-Schritt-Anleitung wäre sehr hilfreich.
Das Ping dient für eine spätere Batch Datei, die aus der Tabelle entstehen soll.
Herzlichen Dank
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 14:32
von Karolus
Hallo
oben ist auch ein Link
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 15:42
von miesepeter
VerenaSchuster hat geschrieben: Di, 08.11.2022 11:39
Meine Tabelle hat ca. 4.000 Zeilen.
Es soll einfach nach jeder Zeile automatisch eine Zeile mit dem Text "ping -n 07 127.0.0.1" eingefügt werden bzw. automatisch dupliziert werden.

- JedeZweiteZeileGleicherInhaltErsteZelle.png (38.39 KiB) 4235 mal betrachtet
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 16:18
von VerenaSchuster
Danke, aber ich habe ja bereits beschriebene Zeilen. Bei dieser Methode klappt es nicht, dass nach jeder beschriebenen Zeile dieselbe Zeile eingefügt wird.
So ist es jetzt:
1. Mein Text in der 1. Zeile
2. Mein Text in der 2. Zeile
3. Mein Text in der 3. Zeile
4. Mein Text in der 4. Zeile
Insgesamt habe ich bereits 4.000 beschriebene Zeilen
Nun möchte ich einfach nach jeder Zeile einen gleich bleibenden Text einfügen:
So soll es danach aussehen:
1. Mein Text in der 1. Zeile
2. ping -n 07 127.0.0.1
3. Mein Text in der 3. Zeile
4. ping -n 07 127.0.0.1
5. Mein Text in der 5. Zeile
6. ping -n 07 127.0.0.1
...
Ich hätte nicht gedacht, dass das so kompliziert in OpenOffice ist :-/
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 17:07
von miesepeter
Okay, da habe ich falsch verstanden.
Da ich für Calc jetzt keine Möglichkeit gefunden habe (ich denke, @karolus war hier schon auf dem richtigen Weg), würde ich es so lösen.
Achtung! Das ist ein
nicht-eleganter Workaround.
- Du kopierst deine Spalte mit den 4000 Zeilen in den Writer (unformatiert). Es ergibt dann 4000 Absätze.
- Du hängst mit SUCHEN&ERSETZEN (reguläre Ausdrücke aktivieren) an jeden Absatz einen leeren Absatz dran.
- SUCHEN: .+
- ERSETZEN: &\n
ALLE ERSETZEN
- Du kopierst den Text (mit den alternierenden leeren Absätzen) wieder nach Calc: Einfügen als unformatierter Text (FESTE BREITE) - jetzt hast du nach jedem Eintrag (bzw. mit Text gefüllter Zelle/Zeile) eine Zeile frei.
- Du wendest den Autofilter an und zeigst nur die leeren Zellen dieser Spalte an
- Die leeren Zellen kannst du jetzt mit deinem ping-Text einfach füllen, dann beendest du den Autofilter wieder. Mission accomplished.
Bei einer Anzahl von ca. 10 Einträgen hat bei mir jetzt alles funktioniert. Die Calc-Experten können dir aber sicher eine elegantere Methode nennen...

Viel Erfolg!
EDIT
VerenaSchuster hat geschrieben: Di, 08.11.2022 16:18Ich hätte nicht gedacht, dass das so kompliziert in OpenOffice ist :-/
Es sollte in Calc doch eigentlich ganz einfach sein, nach jeder Zeile eine weitere Zeile einzufügen. Finde ich schon auch.
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 17:19
von Karolus
Oder nimm in der ersten freien Spalte fürs Beispiel D1:
Code: Alles auswählen
=WENN(ISTGERADE(ZEILE());{"ping -n 07 127.0.0.1"|""};INDEX(A$1:B$4000;(ZEILE()+1)/2))
im Formelassistenten mit aktiver [x]matrix-option
Gib im Adressfeld
D1:E8000 ein & <enter> und dann
→Tabelle→Ausfüllen→unten
Ich hätte nicht gedacht, dass das so kompliziert in OpenOffice ist :-/
Wer auf
diese Weise solche
fragwürdigen Batch-dateien produzieren möchte, sollte besser still sein!
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 18:46
von VerenaSchuster
Ich danke Euch allen und werde mich mal durch arbeiten.
Ich wünsche Euch allen einen wundervollen Abend!!!!!
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Di, 08.11.2022 20:26
von VerenaSchuster
Mit diesem Makro funktioniert es:
Sub LeereZellenSuchen()
oSelect=ThisComponent.CurrentSelection
oColumn=oselect.Columns
oRow=oSelect.Rows
For n= 0 To oColumn.getCount-1
For m = 0 To oRow.getCount-1
oCell=oselect.getCellByPosition (n, m)
Select Case oCell.String
Case ""
oCell.String = "ping -n 07 127.0.0.1"
End Select
next
next
End Sub
Sub Macro1
End Sub
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Mi, 09.11.2022 07:50
von Karolus
VerenaSchuster hat geschrieben:Mit diesem Makro funktioniert es:
soso… die dazu nötigen Leerzeilen sind dann wohl zwischendurch vom Himmel gefallen!
Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Mi, 09.11.2022 09:13
von VerenaSchuster
Nein, dazu gab es auch ein Makro in einem anderen Post hier


Ich füge es gleich noch ein. Für Mitmenschen, die ein ähnliches Problem haben, wie ich.
Ich danke Euch von Herzen und wünsche allen noch eine schöne Rest-Woche

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen
Verfasst: Mi, 09.11.2022 10:22
von VerenaSchuster
Hier das angekündigte Makro zum einfügen von Leerzeilen (jede zweite Zeile):
Sub S_insert_rows
osheet = thiscomponent.sheets.getbyname("Tabelle1")
orows = osheet.rows
ocursor = osheet.createcursor
ocursor.gotoendofusedarea(False)
nrow = ocursor.rangeaddress.endrow
for i = nrow to 1 step -1
orows.insertbyindex(i,1)
next i
End Sub