Per VBA Word verschieben

Moderator: ModerationP

Per VBA Word verschieben

Beitragvon emr » 12. Jun 2014, 08:13

Hallo Zusammen

Habe mal wieder eine Frage.
Ich möchte ein geöffnetes Dokument mit einem Button von A nach B verschieben.

Mein Code sieht zur Zeit wie folgt aus:
Code: Alles auswählen
    Dim strQuelle As String
    Dim strZiel As String
    Dim objFSO As Object

    strQuelle = "C:\Temp\" & ThisDocument.Name
    If Dir(strQuelle) = "" Then MsgBox "Nix da!": Exit Sub
    strZiel = "C:\Temp1\"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.MoveFile strQuelle, strZiel
    Set objFSO = Nothing
Leider erhalte ich Immer die Meldung, dass er keinen Zugriff hat. Dies ist meiner Meinung nach auch logisch, da ich das Dokument geöffnet habe und ich manuell ein geöffnetes Dokument auch nicht verschieben kann. Kennt da jemand eine Möglichkeit dies zu umgehen?

Danke und Gruss
emr
 

Re: Per VBA Word verschieben

Beitragvon theoS » 12. Jun 2014, 20:50

Wenn das doc offen ist, kannst du bestenfalls eine Kopie davon speichern.
Anschließend kannst du das derzeitig offene (zeitverzögert) beim Schließen killen.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4783
Registriert: 19. Apr 2008, 00:14

Re: Per VBA Word verschieben

Beitragvon mumpel » 12. Jun 2014, 21:30

Hallo!

Noch eine Möglichkeit:
Das Makro nicht in der zu verschiebenden Datei speichern, sondern zum Beispiel in der normal.dotm. Den Namen der geöffneten Datei in einer Variablen speichern. Die Datei dann schließen und mit der Name-Funktion verschieben/umbenennen. Zur Name-Funktion siehe VBA-Hilfe. Nach dem Umbennen/Verschieben die Datei wieder öffnen.

Gruß, René
Benutzeravatar
mumpel
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8136
Registriert: 09. Jan 2005, 15:20
Wohnort: Lindau (B)

Re: Per VBA Word verschieben

Beitragvon Isabelle :-) » 13. Jun 2014, 06:41

Hallöchen,

Renés Vorschlag ist meiner Meinung nach die einzige Möglichkeit, denn "das derzeitig offene (zeitverzögert) beim Schließen killen" wird nicht gehen. Anders als in Excel gibt es in Word keine Möglichkeit die Zugriffsart von exklusiv auf readonly umzuschalten. Zumindest hab ich trotz intensiver Suche keine gefunden. Und ein exklusiv geöffnetes Dokument kann in keinem Fall gelöscht oder verschoben werden.
LG Isi

Die Mitgliedschaft im Forum erhöht deine Chance auf eine Antwort von mir um 99,999%
Benutzeravatar
Isabelle :-)
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 11997
Registriert: 17. Jul 2011, 07:26
Wohnort: Westlicher Spiralarm der Galaxis

Re: Per VBA Word verschieben

Beitragvon emr » 16. Jun 2014, 08:44

Hallo Zusammen

Danke für eure Hilfe.
Habe es nun wie folgt gelöst:
1. Dokument neu Abspeichern (am richtigen Ort).
2. Altes Dokument weglöschen
3. Word schliessen.

Genau bei Punkt 3 liegt aber (warum auch immer) das Problem. Wenn ich mit Word.Application.Quit schliesse, kann ich nach erneutem öffnen des Dokumentes die eingebauten Buttons im geschützten Dokument nicht betätigen. Es sieht so aus, als hätte ich den Entwurfsmodus aktiv. Was ja allerdings nicht möglich ist, da der Dokumentenschutz aktiv ist.
Wenn ich allerdings Word manuell schliesse oder nur das Dokument über ActiveDocument.Close, kann ich beim wiederöffnen des Dokumentes die Buttons ganz normal verwenden.

Es muss am Befehl Word.Application.Quit liegen. Irgendwie scheint über diesen Befehl das Word in einem "komischen Zustand" geschlossen zu werden.
Kennt jemand von euch dieses Problem? Gibt es eine Lösung dafür?
Ich arbeite mit Word 2007.

Danke und Gruss
emr
 


Zurück zu Word Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste