228 Aufrufe
in Textverarbeitung von witti Experte (1.2k Punkte)
Bearbeitet von witti
Hallo zusammen!

Wie kann ich denn in einen langen Word Dokument einzelne Buchstaben in einen Wort ersetzen. Konkret: Ich möchte den Buchstaben H im Wort "VereinsHaus" natürlich durch ein kleines h ersetzen. Ich möchte nun alle H ersetzen vor dem KEIN Leerzeichen steht

VereinsHaus = ersetzen;  Haus=nicht ersetzen. Wie schaut den da die "Suchen nach" und "Ersezen durch" Formel aus? Suchen nach könnte ich mir ja : ^?H vorstellen. Aber durch was ersetzen??

Danke Andreas!

3 Antworten

0 Punkte
von xlking Experte (2.1k Punkte)
Bearbeitet von xlking

Nabend Andreas.

Nun ja. Wenn es bei dem Wort VereinsHaus bliebe bräuchtest du das ja nur durch Vereinshaus ersetzen. Wenn du aber viele verschiedenen Wörter im CamelCase-Stil hast, sehe ich nur die Möglichkeit folgendes Makro auszuführen:

Sub Ersetzen()

  Dim wd As Range
  For w = 1 To ActiveDocument.Words.Count
    Set wd = ActiveDocument.Words(w)
    wd.Text = Left(wd, 1) & LCase(Right(wd, Len(wd) - 1))
  Next w

End Sub

Beachte aber, dass dann auch großgeschriebene Abkürzungen wie z.b. CDU zu Cdu ersetzt werden.

Gruß Mr. K.

0 Punkte
von xlking Experte (2.1k Punkte)
ausgewählt von halfstone
 
Beste Antwort

Hier noch ein erweiterter Code, bei dem du bei jedem komischen Wort gefragt wirst, ob du ersetzen willst oder nicht. So bleiben Abkürzungen und gewollte Großbuchstaben innerhalb eines Wortes erhalten:

Sub Ersetzen()
  
  Dim wd As Range, frage As VbMsgBoxResult
  
  For w = 1 To ActiveDocument.Words.Count
    Set wd = ActiveDocument.Words(w)
    If wd.Text <> Left(wd, 1) & LCase(Right(wd, Len(wd) - 1)) Then
      wd.Select
      frage = MsgBox("Wollen Sie " & Trim(wd.Text) & " durch " & Trim(Left(wd, 1) & LCase(Right(wd, Len(wd) - 1))) & " ersetzen?", vbYesNoCancel)
      If frage = vbYes Then wd.Text = Left(wd, 1) & LCase(Right(wd, Len(wd) - 1))
      If frage = vbCancel Then Exit For
      DoEvents
    End If
  Next w

End Sub

Gruß Mr. K.

+1 Punkt
von witti Experte (1.2k Punkte)

Danke Euch beiden! Habe durch diese Aktion zum ersten Mal ein Makros erstelltsmiley

Das funktioniert auch noch! Gut, bin ja erst 67j hab ja noch Zeit dazu zu lernenwink

DANKE!!!   

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...