Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

VerenaSchuster
Beiträge: 9
Registriert: Di, 08.11.2022 09:34

Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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 :shock:

Schreib halt in A2 ping -n 07 127.0.0.1

und in A4: =A2
und ziehe die Formel nach unten.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
VerenaSchuster
Beiträge: 9
Registriert: Di, 08.11.2022 09:34

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
VerenaSchuster
Beiträge: 9
Registriert: Di, 08.11.2022 09:34

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag von Karolus »

Hallo
oben ist auch ein Link
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Benutzeravatar
miesepeter
********
Beiträge: 2097
Registriert: Sa, 10.05.2008 15:05
Wohnort: Bayern

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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
JedeZweiteZeileGleicherInhaltErsteZelle.png (38.39 KiB) 1752 mal betrachtet
VerenaSchuster
Beiträge: 9
Registriert: Di, 08.11.2022 09:34

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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 :-/
Benutzeravatar
miesepeter
********
Beiträge: 2097
Registriert: Sa, 10.05.2008 15:05
Wohnort: Bayern

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag von miesepeter »

Okay, da habe ich falsch verstanden. :oops:

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. :oops:
  • 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.
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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!
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
VerenaSchuster
Beiträge: 9
Registriert: Di, 08.11.2022 09:34

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag von VerenaSchuster »

Ich danke Euch allen und werde mich mal durch arbeiten.

Ich wünsche Euch allen einen wundervollen Abend!!!!!
VerenaSchuster
Beiträge: 9
Registriert: Di, 08.11.2022 09:34

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag von Karolus »

VerenaSchuster hat geschrieben:Mit diesem Makro funktioniert es:
soso… die dazu nötigen Leerzeilen sind dann wohl zwischendurch vom Himmel gefallen!
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
VerenaSchuster
Beiträge: 9
Registriert: Di, 08.11.2022 09:34

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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 😊
VerenaSchuster
Beiträge: 9
Registriert: Di, 08.11.2022 09:34

Re: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Beitrag 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
Antworten