For Each Word.doc

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: For Each Word.doc
von: Felix
Geschrieben am: 27.10.2003 14:17:01

Hallo zusammen,

ich habe Projekt-Dokumente, die ich immer wieder verwenden möchte. Sie liegen in einem Ordner "Projektdokumente". In diesem Ordner liegt auch eine Excel-Dokument "Kennung". In diese Excel-Tabelle trage ich in bestimmte Zellen Informationen ein, die in alle Fußzeilen aller Word-Dokumente im Ordner "Projektdokumente" überführt werden sollen.

Die Kommunikation zwischen Excel und Word steht. Was mir jetzt noch zu meinem Glück fehlt, ist die richtige Syntax für den For Each-Befehl.

Wenn ich die Exceltabelle "Kennung" öffne, sollen automatisch nacheinander alle Word-Files aus dem Ordner "Projektdokumente" geöffnet werden und die Fußzeile beschriftet werden. Also ungefähr so (kritische Zeile habe ich mit "?" gekennzeichnet:

For Each Word.doc in "Projekdokumente" ?
Documents.Open ?
Set obj = ActiveDocument
obj.bookmarks("Projektnummer").Select
With Word.Application.Selection
.InsertAfter Projektnummer
End With
next

Vielen Dank für eure Mühen!

Felix

Bild


Betrifft: AW: For Each Word.doc
von: Reinhard
Geschrieben am: 27.10.2003 18:29:07

Hallo Felix,
probiers mal aus.
Gruß
Reinhard


Sub t()
With Application.FileSearch
    .LookIn = "c:\temp" ' anpassen an projektdokumente
    .FileType = msoFileTypeWordDocuments
    .Execute
    Set myWord = CreateObject("Word.Application.9")
    myWord.Visible = True
    For Each Datei In .FoundFiles
        
        myWord.Application.Documents.Open Datei
        '
        MsgBox Datei 'hier deinen Code einfügen was du mit Datei machen willst
        '
        myWord.Application.Documents.Close
    Next Datei
End With
End Sub



Bild


Betrifft: AW: For Each Word.doc
von: Felix
Geschrieben am: 28.10.2003 11:20:52

Hallo Reinhard,

danke für deinen wirklich guten Tip. Leider habe ich nachwievor ein Problem. Genrell finde ich es sehr problematisch, wenn man von Excel auf Word zu greift. Den Verweis auf die Bibliothek Micosoft Word 9.0 Object Library habe ich hergestellt und folgeden Code in VB eingefügt:
Dim myWord As Word.Document

Sub zuweisen()
    Dim Projektnummer As String
    
    With Application.FileSearch
    .LookIn = DieseArbeitsmappe.Path ' anpassen an projektdokumente
    .FileType = msoFileTypeWordDocuments
    .Execute
    'Set myWord = CreateObject("Word.Application.9")
    'myWord.Visible = True
    For Each Datei In .FoundFiles
        
        Documents.Open Datei
        Set myWord = ActiveDocument
        '
        'hier deinen Code einfügen was du mit Datei machen willst
        Projektnummer = DieseArbeitsmappe.Sheets(1).Cells(2, 2).Value
    
        Word.Application.ActiveDocument.Bookmarks("Projektnummer").Select
        myWord.Bookmarks("Projektnummer").Select
    
        With Word.Application.Selection
            .InsertAfter Projektnummer
        
        End With
        
        myWord.Application.Documents.Save
        myWord.Application.Documents.Close
    Next Datei
    End With
End Sub


Die Anweisung: 'Set myWord = CreateObject("Word.Application.9") macht mir ständig Probleme, deshalb habe ich Sie rausgenommen. Ich weiß nicht genau was Sie macht, aber es klappt auch so wenn Word geöffnet ist.

Auch muss ich myWord auf dem Umweg Documents.Open Datei; Set myWord = ActiveDocument initialisieren. Sonst läuft es nicht.

So weit so gut. Aber an der Stelle Word.Application.ActiveDocument.Bookmarks; "Projektnummer").Select kommt die Fehlermeldung "#5941 Das angeforderte Element ist nicht in der Sammlung vorhanden"

Wenn ich diesen Code einsetze, dann läuft es problemlos durch. Leider verträft sich das nicht mit deiner For Anweisung:
Dim myWord As Word.Document

Sub zuweisen()
    Dim Projektnummer As String
    
        
        
        Word.Application.Documents.Open Filename:=DieseArbeitsmappe.Path & "\Test.doc"
        
        Set myWord = ActiveDocument
        '
        'hier deinen Code einfügen was du mit Datei machen willst
        
        Projektnummer = DieseArbeitsmappe.Sheets(1).Cells(2, 2).Value
        
        Word.Application.ActiveDocument.Bookmarks("Projektnummer").Select
        
        myWord.Bookmarks("Projektnummer").Select
        
        With Word.Application.Selection
            .InsertAfter Projektnummer
        
        End With
        
        'myWord.Application.Documents.Save
        'myWord.Application.Documents.Close
   
    
End Sub


Ich hoffe du kannst mir weiter helfen und vielen Dank

Felix


Bild


Betrifft: noch offen
von: Reinhard
Geschrieben am: 31.10.2003 11:51:08

Hi Felix,
danke für die Rückmeldung.
Mit Wordzugriffen habe ich mich noch nicht beschäftigt und kann dir deshalb da noch nicht weiterhelfen.
Sorry, dass ich erst jetzt antworte.
Gruß
Reinhard


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Summe eines Bereiches anzeigen"