Plz: Kurze Codeüberprüfung - Automatische Änderung benutzerdefinierter Eigenschaften von Worddokumenten

  • Word

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Plz: Kurze Codeüberprüfung - Automatische Änderung benutzerdefinierter Eigenschaften von Worddokumenten

    Hallo Freunde,

    ich war auf der Suche nach einer automatischen Veränderung von "Benutzerdefinierten Eigenschaften" von Worddokumenten, wie sie hier zu sehen ist:




    Ich versuche nun den "Strassen"-Wert zu ändern. Quasi einen neuen Straßennamen zu vergeben. Dafür habe ich im Internet dieses Skript gefunden. Die genaue Quelle kann ich nicht mehr finden, da ich vor kurzem meinen Cache gecleared habe und die Seite nicht mehr finde. Das Skript ist nicht von mir.

    Quellcode

    1. Sub dok_eig_ändern()On Error GoTo fehlerDim zähler As IntegerDim pfad As StringDim dateiname As StringDim neuerwert As Stringneuerwert = "Name der Straße" '''''''''''''Anpassen
    2. pfad = ThisDocument.Path & "\zielordner\" ''''''''''''Anpassendateiname = Dir(pfad & "*.doc*")
    3. While dateiname <> ""zähler = zähler + 1
    4. Documents.Open (pfad & dateiname)
    5. With ActiveDocument.CustomDocumentProperties("Strasse").Value = neuerwert '''''Anpassen.Fields.Update 'aktualisiert alle Felder, also auch ein ggf. vorhandenes docproperty-Feld.Save.CloseEnd With
    6. dateiname = Dir
    7. If zähler = 10 Then Exit Sub
    8. WendMsgBox "Die Dokumenteigenschaft 'Strasse' wurde in " & zähler & " Dokumenten geändert"Exit Subfehler:MsgBox Err.Number & " - " & Err.DescriptionEnd Sub


    Wenn ich das Skript mit F5 ausführen möchte, dann bekomm ich die Meldung:
    "Die Dokumenteigenschaft 'Strasse' wurde in 0 Dokumenten geändert"

    Kann mir jemand sagen, wie ich das Skript zum funktionieren bringen kann?

    gruß
    Georg

    Edit:
    nach mehreren versuchen, den code richtig darstellen zu lassen, habe ich ein screenshot davon genommen. Kann man hier sehen:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „soigroeg“ ()

    Deine Routine wird garnich abgearbeitet, weil in deinem Zielverzeichnis keine *.doc Dateien vorhanden sind?
    Schau mal mit F8 deinen Code durch...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „FloFuchs“ ()

    Na is doch deutlich zu sehen.. sie wird nicht betreten... Die gelbe MArkierung (die anzeigt, welche CodeZeile gerade ausgeführt wird) springt doch direkt zur Msgbox.. also is dateiname ="" also is noch i-wo ein Fehler.
    Hast du dir mal die aktuellen Werte der Variablen anzeigen lassen?
    (mit der Maus drüber fahren und warten)
    Das Problem ist nun schon halbgelöst.




    Der Befehl "ThisDocument.Path" verbindet leider zu "C:\Users\George\AppData\Roaming\Microsoft\Templates\"

    Obwohl ich die Datei in einem Ordner auf dem DESKTOP habe. Gibt es da eine alternative, dass das Makro dort abruft, wo die Datei gespeichert ist, statt in irgendeinem Roaming Ordner?