Seite 1 von 2
Makro: Wörter eines Textes
Verfasst: Mo 9. Jun 2025, 11:32
von anton
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
Re: Makro: Wörter eines Textes
Verfasst: Mo 9. Jun 2025, 11:38
von Pit Zyclade
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.
Re: Makro: Wörter eines Textes
Verfasst: Mo 9. Jun 2025, 11:54
von anton
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 ...
Re: Makro: Wörter eines Textes
Verfasst: Mo 9. Jun 2025, 12:24
von miesepeter
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.
- 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
(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.
Re: Makro: Wörter eines Textes
Verfasst: Mo 9. Jun 2025, 12:59
von anton
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.)
Re: Makro: Wörter eines Textes
Verfasst: Mo 9. Jun 2025, 14:10
von miesepeter
anton hat geschrieben: ↑Mo 9. Jun 2025, 12:59
ich soll das für ca. 200 Zeilen einer Tabelle machen?
*schnauf*
Du kannst das nacheinander oder in einem Schritt machen.
.

- SUCHEN_ERSETZEN.png (13.09 KiB) 893 mal betrachtet
Re: Makro: Wörter eines Textes
Verfasst: Mo 9. Jun 2025, 15:00
von miesepeter
SUCHEN&ERSETZEN kann auch in Calc angewendet werden.
anton hat geschrieben: ↑Mo 9. Jun 2025, 12:59
Für die Sondernamen habe ich noch keine Lösung. Da könnte ich mir auch händisch noch etwas vorstellen.
miesepeter hat geschrieben: ↑Mo 9. Jun 2025, 12:24
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 (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.
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
Verfasst: Mo 9. Jun 2025, 17:11
von anton
Mit dem Ausdruck
finde 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.
Re: Makro: Wörter eines Textes
Verfasst: Mo 9. Jun 2025, 17:45
von karolus
Re: Makro: Wörter eines Textes
Verfasst: Mo 9. Jun 2025, 18:32
von miesepeter
anton hat geschrieben: ↑Mo 9. Jun 2025, 17:11
finde ich anscheinend auch die Umlaute, wie finde ich aber " é è É È ... "
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