Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Wiederholende Zeilen - nach jeder Zeile gleichen Text einfügen

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

von VerenaSchuster » Fr, 11.11.2022 19:18

Vielen lieben Dank 🙏🏻🙏🏻🦶

Ganz liebe Grüße

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

von Hiker » Fr, 11.11.2022 07:48

VerenaSchuster hat geschrieben: Di, 08.11.2022 16:18 ...
Ich hätte nicht gedacht, dass das so kompliziert in OpenOffice ist :-/
Du nutzt gerade einen Tabellenrechner und fragst nach Textmanipulation, wobei Du das Prinzip Eine Zeile=ein Datensatz aufbrichst. Das kann kompliziert werden...

Muss aber nicht sein: Bleiben wir beim Datensatz und screiben die ping-Kommandos in die dritte Spalte. (Statt herunterziehen besser den ersten Zelle schreiben, dann in alle Zellen darunter kopieren.)
Die Datei als csv mit tab als Trenner speichern und die csv-Datei in einem Texteditor wie Notepad++ öffnen.
Dort \tping durch \r\nping ersetzen und diesmal mit Dateierweiterung .bat speichern. ( Lässt sich ähnlich auch in Writer machen (\t steht für das Tabulator-Zeichen, dass als Trenner gesetzt wurde, \r\n ist das üblich Zeilenende unter DOS/Windows).

Obige Macro-Lösung würde ich nutzen, wenn ich so etwas dauernd machen muss..

Mfg, Jörn

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

von VerenaSchuster » Mi, 09.11.2022 10:22

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

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

von VerenaSchuster » Mi, 09.11.2022 09:13

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

von Karolus » Mi, 09.11.2022 07:50

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

von VerenaSchuster » Di, 08.11.2022 20:26

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

von VerenaSchuster » Di, 08.11.2022 18:46

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

von Karolus » Di, 08.11.2022 17:19

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

von miesepeter » Di, 08.11.2022 17:07

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.

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

von VerenaSchuster » Di, 08.11.2022 16:18

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

von miesepeter » Di, 08.11.2022 15:42

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) 1918 mal betrachtet

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

von Karolus » Di, 08.11.2022 14:32

Hallo
oben ist auch ein Link

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

von VerenaSchuster » Di, 08.11.2022 14:25

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

von Karolus » Di, 08.11.2022 14:16

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

von VerenaSchuster » Di, 08.11.2022 11:39

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

Nach oben