Thema Datum  Von Nutzer Rating
Antwort
Rot Makro zur dokumentenübergreifenden Textmanipulation
24.09.2017 19:16:04 Martin
NotSolved

Ansicht des Beitrags:
Von:
Martin
Datum:
24.09.2017 19:16:04
Views:
1071
Rating: Antwort:
  Ja
Thema:
Makro zur dokumentenübergreifenden Textmanipulation

Hallo zusammen,

für meine Bewerbung erstelle ich zahlreiche Vorlagen, die teilweise bis auf kleine Unterschiede identisch sind.

Da ich häufig Ergänzungen oder Ersetzungen vorzunehmen habe und ich nicht jedes Mal alle Vorlagen manuell ändern möchte, wollte ich mir ein Makro hierfür erstellen.

Ich habe mich einmal an den Code gewagt:

Sub ErsetzenDokumentenübergreifend()

  Dim docDoc As Document
  Dim shapeTF As Shape
  Dim strOld As String
  Dim strNew As String
  strOld = "Text zuvor"                  'Anpassen
  strNew = "Text danach"         'Anpassen

  For Each docDoc In Documents
    docDoc.Activate
    
    For Each shapeTF In docDoc.Shapes
      shapeTF.Select
      With Selection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = strOld
        .Replacement.Text = strNew
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = True
      End With
    
      Selection.Find.Execute Replace:=wdReplaceAll
      
    Next shapeTF
    
    Selection.HomeKey unit:=wdStory
        
    With Selection.Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Text = strOld
      .Replacement.Text = strNew
      .Forward = True
      .Wrap = wdFindContinue
      .Format = False
      .MatchCase = True
      .MatchWholeWord = True
    End With
    
    Selection.Find.Execute Replace:=wdReplaceAll

  Next docDoc

End Sub

Leider funktioniert dieser Algo nicht zuverlässig. An ein paar Testungen hat es funktioniert, manchmal jedoch klappt es auch nur im aktuell geöffneten Dokument.

Könnte mir da jemand auf die Sprünge helfen, wo der Fehler liegen könnte?

PS: Die innere For Each - Schleife klappert die ganzen Shapes des Dokuments ab, da ich schon herausgefunden habe, dass ich nur im selektierten Textfeld etwas Suchen&Ersetzen kann (oder ich weiß einfach nicht, wie es besser geht)...

Ich nutze Microsoft Office Word 2010 und habe kaum Erfahrung mit VBA.

Für konstruktive Vorschläge bin ich sehr dankbar.

LG Martin


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Makro zur dokumentenübergreifenden Textmanipulation
24.09.2017 19:16:04 Martin
NotSolved