PDA

Vollständige Version anzeigen : Vor Buchstaben automatisch Leerzeichen


Spion
18.08.2009, 20:29
Hallo zusammen

Ich habe eine Word (2003) Datei und hätte gerne ein Makro dass mir vor jeden grossen Buchstaben (ausser bei einem N) einen Leerschlag einfügt. Trotz langer Internetsuche habe ich nichts entsprechendes gefunden.

Wenn mir da jemand etwas programmieren könnte währe das super!


mfg Spion

PapaSchlumpf
18.08.2009, 21:58
Hi
das sollte auch ohne Makro mit dem Suchen und ERsetzen-Dialog gehen.
Dazu musst du den Mustervergleich aktivieren und dich dann mit den Optionen auseinandersetzen, bis ich (ode jemand anderes) Zeit finden das selbst zu testen ;)

PS - heute nicht mehr...

C-J
19.08.2009, 07:38
Die Suchzeile ist sogar relativ simpel :)

[ABCDEFGHIJKLMOPQRSTUVWXYZ]{1}

das in die Ersetzenzeile:

^&


Vor dem circonflex ist ein Leerzeichen! Mustervergleich/Platzhalter aktivieren, nicht vergessen. :)

Gruß,
CJ

C-J
19.08.2009, 09:55
Da ich nicht weiß, wie man einen Beitrag bearbeitet!?

Hier ein Nachtrag: auf 'alle Ersetzen' klicken :)

Schreibbüro
19.08.2009, 15:44
Hallo CJ,

für Faule geht es auch so:

[A-Z]{1}
oder so:
[A-ZÄÖÜ]{1}

Gruß
Lisa

Spion
19.08.2009, 16:34
Hallo

Besten Dank für die zahlreichen Antworten! Ich werde sie heute Abend testen.

Mfg Spion

Spion
19.08.2009, 17:42
Hallo

Habe das ganze jetzt probiert, hat super funktioniert. Aus der lästigen Suche konnte ich mir dank der Aufzeichnen Funktion sehr einfach ein Makro machen.

Sub Makro1()
'
' Dieses Makro fügt vor jedem Grossbuchstaben 2 Leerzeichen ein.
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "[A-Z]{1}"
.Replacement.Text = " ^&"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub


Besten Dank an alle hier, das ist wirklich ein super Forum!

mfg Spion

PapaSchlumpf
19.08.2009, 18:59
Hi

mh, wenn ich aber richtig lese
vor jeden grossen Buchstaben (ausser bei einem N)
dann stimmt Lisas Lösung leider nicht, sondern du musst den Bereich, wie von C-J angegeben verwenden (sonst wird ja N mitausgewertet).

2cents
PS

C-J
20.08.2009, 07:04
Hallo Lisa :)

Ich weiß, die Suchzeile ist etwas lang :D ich wollte eigentlich
[A-Z][!N]{1}
benutzen, aber aus einem mir unverständlichen Grund werden dann immer zwei Buchstaben markiert ... daher diese "umständliche" Suchzeile.
... hauptsache es klappt :)

Gruß,
CJ

Spion
20.08.2009, 15:40
Hallo

Schluss und endlich habe ich die A-Z Version verwendet, da ich bemerkt habe dass es nicht funktioniert wenn das N nicht mit einbezogen wird.

Damit ihr wisst wofür das ganze verwendet wird:
Wir laden von unseren Computer gesteuerten Maschinen einen Code herunter der etwa diese Form hat:
N10(Schruppen)
G96V100T101M4
G0X30Z20
N20(Schlichten)
.......

Wie ihr seht ist es so nicht sehr gut lesbar, besser ist so:
N10 (Schruppen)
G96 V100 T101 M4
G0 X30 Z20
N20 (Schlichten)
.......

Der Lösungsansatz hat zwar den Nachteil, dass er auch vor dem ersten Buchstaben in der Zeile und bei den Begriffen in den Klammern einen Leerschlag einfügt, aber damit kann ich leben.

mfg Spion

Schreibbüro
20.08.2009, 19:43
Hallo Spion,

sorry, das mit dem N hatte ich überlesen. Aber dass Du jetzt das Beispiel gezeigt hast, hilft. Probier mal das hier:

Suchen:
([0-9])([A-MN-ZÄÖÜ\(])

Ersetzen:
\1 \2

Natürlich "Mit Platzhalterzeichen" aktivieren. Die Klammern werden auch gleich mit behandelt und man muss nicht alle Buchstaben hinschreiben.
Im Ersetzen-Feld ist die \1 der erste (in Klammern stehende) Ausdruck, nämlich die Ziffer, \2 der zweite in Klammern stehende Ausdruck, nämlich ein Großbuchstabe oder eine runde öffnende Klammer.

Gruß
Lisa

Spion
20.08.2009, 21:03
Hallo

Ich sage nur noch etwas: GENIAL!!
Genau so wie ich es mir gedacht habe!
Danke!

Jetzt muss ich nur noch die Sache mit dem Makro perfektionieren.

Grüsse Spion