Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suchen und Ersetzen VBA
#1
Hallo zusammen,

das ist mein erster Versuch ein Code für Word VBA zu schreiben - daher bitte nicht zu viel erwarten.

Das Prinzip, was in meinem Code erfolgen soll ist bereits für Excel Dokumente geschehen und ist im folgenden Link nachzulesen:

https://www.clever-excel-forum.de/Thread...n-ersetzen

Um es nochmal kurz zusammenzufassen

Es sollen nacheinander doc, docx, docm Dateien geöffnet und geschlossen werden. (Insgesamt 1500 Dateien)
Nach dem Öffnen einer einzelnen Datei soll folgendes Geschehen:
Zelle A2 eines vordefinierten workbooks wird in dem gesamten Dokument (inkl Kopf-und Fußzeilen) gesucht und bei einem Treffer durch die Zelle B2 ersetzt. (Replace Funktion)
Dieser Schritt soll in einer schleife solange durchgeführt werden bis die alle beschriebenen Zellen in Spalte A abgesucht sind. 
In anderen Worten: Alle Begriffe in Spalte A von einem definierten Workbook werden in allen Worddokumenten (festgelegter Ordner mit festem Pfad) abgesucht und durch die Nachbarzelle ersetzt. Insgesamt werden in 1500 Dokumenten nach ca 2600 Zellen gesucht. Der Code wird also relativ viel Rechenkapazität fordern. Von daher sollte besonders darauf geachtet werden, dass die Sache möglichst schnell läuft.

Eine Beispieldatei bringt leider nur begrenzt was, da nicht in einem bestimmten Dokument gearbeitet wird.

Bei Nachfragen oder ungenauen Beschreibungen bitte kurz Rückmeldung geben. Die Struktur des Codes ist auch im Link nachvollziehbar.

Beste Grüße
Ilyas
Antworten Top
#2
Hallöchen,

zum Suchen und Ersetzen hast Du im verlinkten Thread ja schon einiges erhalten. Jetzt ist die Frage, in wie weit Du codes selber anpassen und erweitern kannst. Für das Suchen und Ersetzen von ganzen Wörtern hab ich in Word mal diesen Code zum Suchen und Ersetzen im gesamten Dokument aufgezeichnet.
Code:
Sub Makro3()
'
' Makro3 Makro
'
'
  Selection.WholeStory
  Selection.Find.ClearFormatting
  Selection.Find.Replacement.ClearFormatting
  With Selection.Find
    .Text = "Berte"
    .Replacement.Text = "Berta"
    .Forward = True
    .Wrap = wdFindAsk
    .Format = False
    .MatchCase = False
    .MatchWholeWord = True
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
  End With
  Selection.Find.Execute Replace:=wdReplaceAll
End Sub

abgekürzt und ohne Meldung dann so
Code:
Sub Makro6()
  Application.DisplayAlerts = False
  Selection.WholeStory
  With Selection.Find
    .Text = "Berti"
    .Replacement.Text = "Berta"
    .Forward = True
    .MatchWholeWord = True
  End With
  Selection.Find.Execute Replace:=wdReplaceAll
  Application.DisplayAlerts = True
End Sub

Nächster Step wäre dann, in Analogie zur Excel Lösung in einer Schleife die Dokumente eines Verzeichnisses zu bearbeiten - das geht dann im Prinzip wie beim Excel ...
Code:
cDir = Dir(sPath & "*.xls*")
Do While cDir <> ""
  With Workbooks.Open(sPath & cDir)
     …
     .Close True
   End With
   'naechste Datei lesen
   cDir = Dir
Loop
Nur dass Du Documents bearbeitest und keine Arbeitsbücher Smile

Wenn das erst mal passt würden wir dann mit dem Holen und verarbeiten des "Wörterbuchs" weitermachen Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste