🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Makro: Wörter eines Textes
Makro: Wörter eines Textes
Hallo,
in einer Tabellenzelle stehen | Vorname Nachname |
ich möchte mit einem Makro den Vorname und den Nachname in getrennte Variablen abspeichern, so dass ich den Zelleninhalt verändern kann in | Nachname Vorname |
Wie muss ich das programmieren?
Vielen Dank für Hinweise.
anton
in einer Tabellenzelle stehen | Vorname Nachname |
ich möchte mit einem Makro den Vorname und den Nachname in getrennte Variablen abspeichern, so dass ich den Zelleninhalt verändern kann in | Nachname Vorname |
Wie muss ich das programmieren?
Vielen Dank für Hinweise.
anton
-
- * LO-Experte *
- Beiträge: 3041
- Registriert: Mo 12. Nov 2012, 16:59
Re: Makro: Wörter eines Textes
Woran soll denn das Makro (oder irgendetwas) erkennen, was der Vorname und was der Nachname ist.
Ist denn wenigstens die Struktur des Textes stabil vorgegeben? Dann könnte man nömlich den Text einfach in calc importieren und hätte wenigstens bereits eine "Tabelle". In diesem Falle hätte man gar kein Makro nötig, weil man Spalten einfach verschieben|vertauschen kann. Und ganz am Ende könnte man das Ganze wieder nach writer bringen.
Ist denn wenigstens die Struktur des Textes stabil vorgegeben? Dann könnte man nömlich den Text einfach in calc importieren und hätte wenigstens bereits eine "Tabelle". In diesem Falle hätte man gar kein Makro nötig, weil man Spalten einfach verschieben|vertauschen kann. Und ganz am Ende könnte man das Ganze wieder nach writer bringen.
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Makro: Wörter eines Textes
Es ist eine Writer-Tabelle.
In EINER Tabellenzelle stehen VORNAME NACHNAME und sonst nichts.
Da es mehrere, umfangreiche Tabellen sind möchte ich mit einem Makro die Reihenfolge umtauschen in NACHNAME VORNAME.
Vorstellen kann ich mir:
Das Makro scannt in der Zelle die Zeichen bis zum FREIZEICHEN.
Alle Zeichen davor sind der VORNAME, alle Zeichen danach sind der NACHNAME.
Dann wird die Zelle neu beschrieben in der Reihenfolge NACHNAME VORNAME.
Nur, wie ich das programmieren soll ...
In EINER Tabellenzelle stehen VORNAME NACHNAME und sonst nichts.
Da es mehrere, umfangreiche Tabellen sind möchte ich mit einem Makro die Reihenfolge umtauschen in NACHNAME VORNAME.
Vorstellen kann ich mir:
Das Makro scannt in der Zelle die Zeichen bis zum FREIZEICHEN.
Alle Zeichen davor sind der VORNAME, alle Zeichen danach sind der NACHNAME.
Dann wird die Zelle neu beschrieben in der Reihenfolge NACHNAME VORNAME.
Nur, wie ich das programmieren soll ...
- miesepeter
- * LO-Experte *
- Beiträge: 2135
- Registriert: So 19. Dez 2010, 18:16
- Wohnort: Bayern
Re: Makro: Wörter eines Textes
Hallo,
wieso Makro?!
Es wäre einfacher, das mit SUCHEN&ERSETZEN zu erledigen.
Wenn deine Adressdatei so aufgebaut ist, dass nur
VORNAME NACHNAME
mit einem Leerzeichen dazwischen ist, dann wäre es ohne Hilfsspalte möglich, die Aufgabe zu erledigen.
Was ist aber bei Namen wie z. B.
Bei SUCHEN&ERSETZEN bei Namen mit nur einem Leerzeichen dazwischen gehe wie folgt vor (☒ reguläre Ausdrücke)
SUCHEN
(Sucht/findet auch "Doppelwörter" mit Bindestrich und/oder Apostroph)
Ersetzen
(Leerzeichen zwischen $2 und $1)
Ciao
PS: Lesehinweis https://unicode-org.github.io/icu/userguide/strings/regexp.html
EDIT
Falls mehrere Leerzeichen vorkommen, dann würde ich raten, die Tabelle nach Calc zu exportieren und die Leerzeichen zu zählen. Bei mehr als einem muss anders vorgegangen werden als oben beschrieben.
wieso Makro?!
Es wäre einfacher, das mit SUCHEN&ERSETZEN zu erledigen.
Wenn deine Adressdatei so aufgebaut ist, dass nur
VORNAME NACHNAME
mit einem Leerzeichen dazwischen ist, dann wäre es ohne Hilfsspalte möglich, die Aufgabe zu erledigen.
Was ist aber bei Namen wie z. B.
- Hans Peter Mustermann
- Dr. Anke Musterfrau
- Franz Josef Mustermann Angsthase
- Francine O'Hara
- Abigail-Mary Lundquist-Remedy
Bei SUCHEN&ERSETZEN bei Namen mit nur einem Leerzeichen dazwischen gehe wie folgt vor (☒ reguläre Ausdrücke)
SUCHEN
Code: Alles auswählen
(\b[a-zA-Z-']+\b)\s(\b[a-zA-Z-']+\b)
Ersetzen
Code: Alles auswählen
$2 $1
Ciao
PS: Lesehinweis https://unicode-org.github.io/icu/userguide/strings/regexp.html
EDIT
Falls mehrere Leerzeichen vorkommen, dann würde ich raten, die Tabelle nach Calc zu exportieren und die Leerzeichen zu zählen. Bei mehr als einem muss anders vorgegangen werden als oben beschrieben.
Re: Makro: Wörter eines Textes
Aber -- ich soll das für ca. 200 Zeilen einer Tabelle machen?
Ohne Makro?
(Für die Sondernamen habe ich noch keine Lösung. Da könnte ich mir auch händisch noch etwas vorstellen.)
Ohne Makro?
(Für die Sondernamen habe ich noch keine Lösung. Da könnte ich mir auch händisch noch etwas vorstellen.)
- miesepeter
- * LO-Experte *
- Beiträge: 2135
- Registriert: So 19. Dez 2010, 18:16
- Wohnort: Bayern
Re: Makro: Wörter eines Textes
*schnauf*
Du kannst das nacheinander oder in einem Schritt machen.

.
Zuletzt geändert von miesepeter am Mo 9. Jun 2025, 15:02, insgesamt 1-mal geändert.
- miesepeter
- * LO-Experte *
- Beiträge: 2135
- Registriert: So 19. Dez 2010, 18:16
- Wohnort: Bayern
Re: Makro: Wörter eines Textes
SUCHEN&ERSETZEN kann auch in Calc angewendet werden.
EDIT1
Es wäre überhaupt besser, Vor- und Nachnamen in unterschiedlichen Spalten zu schreiben; damit kann auch besser (alphabetisch) geordnet werden. Dies ginge in Writer und Calc gleicherweise. Für das Bearbeiten und Managen der Adressen halte ich Calc für viel geeigneter als Writer (bzw. Writer-Tabelle). Man kann Calc als Datenbank "missbrauchen" und ist nicht auf die geringen Möglichkeiten des Writers beschränkt. Für Anfänger hat das noch den Vorteil, sich nicht in den Umgang mit Datenbanken einarbeiten zu müssen (die Lernkurve ist hier einfach steiler).
EDIT2
OT: Ich finde, für die paar Adressen ist jetzt der Aufwand, dir das zu erklären, schon recht hoch. Bedenke ich die Zeit dafür, hätte dein Projekt schon locker (manuell) abgeschlossen werden können...
miesepeter hat geschrieben: ↑Mo 9. Jun 2025, 12:24EDIT
Falls mehrere Leerzeichen vorkommen, dann würde ich raten, die Tabelle nach Calc zu exportieren und die Leerzeichen zu zählen. Bei mehr als einem (Leerzeichen) muss anders vorgegangen werden als oben beschrieben.
Du kannst dann in Calc die Hilfsspalte sortieren oder filtern, dann auf die zutreffenden Zellen die SUCHEN&ERSETZEN-Routine anwenden und schließlich die Ausnahmen händisch bearbeiten.https://excelblog.ch/zaehlen-eines-bestimmten-zeichens-innerhalb-einer-zelle/ hat geschrieben:=LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))
EDIT1
Es wäre überhaupt besser, Vor- und Nachnamen in unterschiedlichen Spalten zu schreiben; damit kann auch besser (alphabetisch) geordnet werden. Dies ginge in Writer und Calc gleicherweise. Für das Bearbeiten und Managen der Adressen halte ich Calc für viel geeigneter als Writer (bzw. Writer-Tabelle). Man kann Calc als Datenbank "missbrauchen" und ist nicht auf die geringen Möglichkeiten des Writers beschränkt. Für Anfänger hat das noch den Vorteil, sich nicht in den Umgang mit Datenbanken einarbeiten zu müssen (die Lernkurve ist hier einfach steiler).
EDIT2
OT: Ich finde, für die paar Adressen ist jetzt der Aufwand, dir das zu erklären, schon recht hoch. Bedenke ich die Zeit dafür, hätte dein Projekt schon locker (manuell) abgeschlossen werden können...

Re: Makro: Wörter eines Textes
Mit dem Ausdruckfinde ich anscheinend auch die Umlaute, wie finde ich aber " é è É È ... "
Denn " é " im obigen Ausdruck habe ich nicht gefunden.
Oder so etwas wie " Ann-Margret " also das Zeichen " - " in solchen Worten.
Code: Alles auswählen
(\b[a-zA-Z-äöüéÄÖÜ']+\b)\s(\b[a-zA-Z-äöüéÄÖÜ']+\b)
Denn " é " im obigen Ausdruck habe ich nicht gefunden.
Oder so etwas wie " Ann-Margret " also das Zeichen " - " in solchen Worten.
Re: Makro: Wörter eines Textes
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
- miesepeter
- * LO-Experte *
- Beiträge: 2135
- Registriert: So 19. Dez 2010, 18:16
- Wohnort: Bayern
Re: Makro: Wörter eines Textes
Das kann ich nicht bestätigen. Diese von dir genannten Varianten werden auch gefunden. Vorausgesetzt, du hast die regulären Ausdrücke aktiviert.
Der RegEx von @karolus (\w+)\s(\w+) ist hier wesentlich unschärfer und teils für deine Zwecke falsch; du musst das nur auf die gegebenen Beispiele von mir anwenden. Man kann allenfalls mit \w+ ganze Wörter finden. \w+ findet auch Zahlen, jedoch keine Interpunktion (z. B. bei Dr.). Das müsste man hier auch hinzufügen, wie auch in meinem Vorschlag ergänzen, also (\b[[:alpha:]-'.]+\b)
Man könnte beispielsweise [:alpha:] verwenden, wenn man [A-Za-z] vermeiden will.
Wie man's auch nimmt, es wäre besser, wie oben schon deutlich geschrieben, die Tabelle in Calc zu importieren, dann nach Leerzeichen abzusuchen und am einfachsten mit Daten | Text in Spalten mit etwas Geschick aufzusplitten und letztlich Vornamen und Familiennamen getrennt zu verwalten.
Ciao
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.