1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

In mehreren WORD-Dateien Text ändern?

Discussion in 'Office-Programme' started by Klaus-Peter54, Dec 16, 2006.

Thread Status:
Not open for further replies.
  1. Hallo.
    Ein verflixtes Problem. Ich habe sehr viele WORD_97-Dokumente, indenen in einem Textfeld (in der Kopfzeile) ein Eintrag geändert werden muss, um genau zu sein: aus 2006 muss 2007 werden.
    Gibt es irgendeine Möglichkeit, das in einem Rutsch zu machen? Makros sind in diesen Dokumenten nicht erlaubt!
    Ich nehme mal an, dass WORD selber mir da nicht weiterhelfen kann. Existiert ein Programm, mit dem man sowas automatisieren kann? Genauer: aus einem zuvor festgelegten Ordner WORD-Datei öffnen, in die Kopfzeile gehen, zum Textfeld, 2006 gegen 2007 ersetzen, speichern, schließen, nächstes WORD-Dokument öffnen usw.

    Über Tipps würde ich mich seeehr freuen!

    Klaus-Peter :o
     
  2. Falcon37

    Falcon37 Ganzes Gigabyte

    Das Problem läßt sich mit Sicherheit mit VBA lösen.
    Zumindest würde ich es auf diese Art versuchen.

    Mfg
     
  3. Vielen Dank für die rasend schnelle Antwort!
    Ich habe da nur ein Problem: VBA! Hab' nicht den leisesten Schimmer, wie man da was macht. Schade eigentlich...

    Klaus-Peter :(
     
  4. Falcon37

    Falcon37 Ganzes Gigabyte

    Schmöker doch mal ein wenig in der VBA-Hilfe.
    Die ist ziemlich gut und auch sehr umfangreich.

    So schwer ist die Aufgabenstellung schliesslich auch nicht:

    - Datei öffnen
    - Suchen/Ersetzen-Funktion nutzen
    - Datei schliessen
    - Nächste Datei

    Das Ganze in einer Repeat-Schleife eingebaut und schon ist das Problem gegessen :)
     
  5. Das will ich tun! Nur ein kleines Problemchen sehe ich noch: mit "Suchen und Ersetzen" komme ich ja nicht an das in der Kopfzeile befindliche Textfeld! Aber vielleicht kann man das ja auch in VBA "programmieren"... Interessant ist es allemal!

    Danke Dir!

    Klaus-Peter ;)
     
  6. steffen0815

    steffen0815 Guest

    Hallo Klaus-Peter,
    also ohne VBA-Grundkenntnisse wird eng.
    Ich hab zwar hier mal einen Code zusammengestellt, aber du solltest ihn begreifen, wenn du ihn nutzen willst.

    Bedenke auch dass u.U. in dutzenden Worddateien drinrumgeschrieben wird - also Datensicherung.
    Code:
    Sub BearbEineWordDatei(DatNam As String)
    WordBasic.DisableAutoMacros 1
            Documents.Open DatNam
            ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range = _
                Replace(ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range, "2006", "2007")
            ActiveDocument.Save
            ActiveDocument.Close
    WordBasic.DisableAutoMacros 0
    End Sub
    
    
    Sub StapelVerarbeitung()
        Dim fs As FileSearch
        Dim AnzDatei As Integer, AktDatNum As Integer
        Const StartPfad = "c:\tar"
        Const SuchDat = "*.doc"
    
    
    Set fs = Application.FileSearch
    With fs
        .NewSearch
        .FileName = SuchDat
        ' .FileType =msoFileTypeWordDocuments
        .LookIn = StartPfad
        .SearchSubFolders = True ' in Unterverzeichnissen suchen
        If .Execute = 0 Then
            MsgBox "Es wurden keine Dateien."
            Exit Sub
        End If
        AnzDatei = .FoundFiles.Count
    End With
    
    For AktDatNum = 1 To AnzDatei
       ' Hier die Function die die Datei bearbeitet
       ' Beim ersten durchlauf Dateien nur ausgeben
       ' bei erfolge die Bearbeitungszeiel freigeben
       Debug.Print fs.FoundFiles(AktDatNum)
       'BearbEineWordDatei (fs.FoundFiles(AktDatNum))
    Next AktDatNum
    End Sub
     
  7. Das ist ja der Wahnsinn! Und in der Tat, beim ersten Hinschauen begreife ich natürlich rein gar nichts, aber vielleicht kann ich meine letzten logischen Gedankengänge reaktivieren und da durchblicken. Auf jeden Fall setze ich mich damit einmal auseinander!

    Vielen vielen Dank!
    Das ist ja wohl das genialste Forum, indem ich jemals herumgewurstelt habe!!!

    Klaus-Peter :)
     
Thread Status:
Not open for further replies.

Share This Page