Dokumentenvorlage aus Datei entfernen
|
Autor |
Nachricht |
ohe
Im Profil kannst Du frei den Rang ändern

Verfasst am: 12. Okt 2005, 12:46 Rufname:
|
|
|
|
Hallo!
Ich nutze Word 2003. In Word erstellte Dokumente basieren auf einer Dokumentenvorlage, dessen Pfad auch mit dem eigendlichen Dokument abgesspeichert wird. Genau dies bringt mir jetzt folgendes Problem:
Bei einigen älteren Dokumenten wird beim Öffnen der Datei jetzt wohl nach der Dokumentenvorlage gesucht (UNC-Pfad!!), die nicht gefunden werden kann, da der Server nicht mehr existiert. Erst nach ca. 30 sec. wird die datei dann geöffnet.
Der Fehler kann dann behoben werden, indem man unter "Extras-Vorlagen und Add-Ins" die hinterlegte Dokumentenvorlage löscht und das Dokument abspeichert. Danach lässt sich die Datei ohne Zeitverzögerung öffnen. So weit so gut.
Nun ist es allerdings bei mehreren Hundert Dateien sehr mühsam die hinterlegten Dokumentenvorlagen zu löschen. Gibt es eine Möglichkeit über ein Tool oder evtl. ein Makro bei allen Dateien eines Verzeichnisses den Eintrag der hinterlegten Dokumentenvorlage zu löschen bzw. zurückzusetzen auf "Normal.dot"?
Der von Microsoft angebotene Zusatz für Word "Verborgene Daten entfernen" erledigt diese Aufgabe zwar auch, aber auch wieder nur für jede Datei einzeln. Das Tool "DOC-Scrubber" bietet zwar die Möglichkeit alle Dateien in einem Verzeichnis zu behandeln, allerings funktioniert dies nicht bei Word 2003.
Hat jemand eine Idee??
Danke im Voraus.
|
|
Lisa
Moderator; Word seit Word 5.0 (für DOS)

Verfasst am: 12. Okt 2005, 19:59 Rufname:
Wohnort: Leipzig
|
| |
|
|
Hallo Ohe,
sollte mit diesem Makro gehen. Voraussetzung ist natürlich, dass alle Dateien in einem Verzeichnis stehen (natürlich anpassen bei .LookIn). Weiter natürlich den Namen der neuen Vorlage anpassen.
Code: | Sub AlleDateienimVerzeichnisAendern()
' Allen Dateien eines Verzeichnisses eine andere Dokumentvorlage zuweisen
With Application.FileSearch
.NewSearch
.FileName = "*.doc"
.LookIn = "C:\Eigene Dateien\blabla"
.SearchSubFolders = False
If .Execute() > 0 Then
ReDim strdateien(.FoundFiles.Count)
ReDim strZugehOrdner(.FoundFiles.Count)
'Durchläuft alle Dateien, die in dem obigen Verzeichnis vorhanden sind.
For i = 1 To .FoundFiles.Count
strdateien(i) = .FoundFiles(i)
strZugehOrdner(i) = .FoundFiles(i)
Do
strdateien(i) = Right(strdateien(i), (Len(strdateien(i)) - InStr(strdateien(i), "\")))
Loop While InStr(strdateien(i), "\") > 0
Documents.Open FileName:=strZugehOrdner(i)
With ActiveDocument
.AttachedTemplate = "C:\Templates\Letter.dot" 'ordnet die Vorlage "Letter" zu
.Save NoPrompt:=True 'verhindert, dass Speichernachfrage kommt
.Close
End With
Next i
End If
End With
End Sub |
_________________ Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa
Guter Rat ist teuer!
|
|
ohe
Im Profil kannst Du frei den Rang ändern

Verfasst am: 13. Okt 2005, 08:22 Rufname:
|
|
|
|
Hallo Lisa,
ja genau so habe ich mir das vorgestellt. Dein Makro funktioniert ganz hervorragend. Lediglich beim Speichern musste ich das "NoPrompt:=True" rausnehmen. Das hat Word angemeckert.
Vielen lieben Dank nochmal. Das war wirklich perfekte Hilfe!
Gruß ohe
|
|
chris_lalala
Gast
Verfasst am: 09. Jun 2008, 11:12 Rufname:
|
|
|
|
hallo leute,
habe an sich das selbe problem.
das skript habe ich angepasst und funktioniert auch soweit, wenn die pfade zu den templates noch existieren. wenn nicht, bricht er ab.
"laufzeitfehler 5180
word kann diese dokumentvorlage nicht öffnen"
gibt es da einen befehl, damit das word das ignoriert??
die datei kann ich ja von hand öffnen. dauert zwar lange aber es kommt keine fehlermeldung.
|
|
Lisa
Moderator; Word seit Word 5.0 (für DOS)

Verfasst am: 10. Jun 2008, 12:27 Rufname:
Wohnort: Leipzig
|
| |
|
|
Hallo Chris,
die Fehlermeldung bekommst Du doch nur, wenn Du eine Dokumentvorlage neu zuordnen willst, die nicht existiert, im obigen Bsp. "C:\Templates\Letter.dot". Dort muss natürlich der neue Pfad zu der Vorlage stehen, die zugeordnet werden soll. Da die neue Vorlage ja wenigstens vorhanden sein sollte, darf keine Fehlermeldung ausgelöst werden. Oder was hast Du sonst gemacht?
Gruß
Lisa
|
|
Gast
Verfasst am: 24. Jun 2008, 08:53 Rufname:
|
|
|
|
ja ich will die vorlage ersetzen.
jetzt habe ich das problem das ich unter \\fileserver\templates\... mehrere unterorder habe.
dh. ich will genau den ersten teil des pfades ersetzen.
dh mach aus \\fileserver\templates\..
\\fileserver2\templates\..
ich dachte da an sowas wie schneide die zeichen bis templates\ ab und ersetz ihn mit \\fileserver2\ ..
geht das so und wenn ja wie?
|
|
Lisa
Moderator; Word seit Word 5.0 (für DOS)

Verfasst am: 24. Jun 2008, 21:57 Rufname:
Wohnort: Leipzig
|
|
|
|
Hallo Gast,
so umständlich würde ich es gar nicht machen. Gib einfach den richtigen Pfad an der besagten Stelle an und lass die Dokumentvorlage mit vollem Pfad ersetzen.
Gruß
Lisa
|
|
Gast
Verfasst am: 25. Jun 2008, 13:27 Rufname:
|
|
|
|
nein da unter dem pfad templates\ noch weitere unterornder existireren.
die pfade dahinter sind gleich geblieben.
|
|
Lisa
Moderator; Word seit Word 5.0 (für DOS)

Verfasst am: 06. Jul 2008, 21:38 Rufname:
Wohnort: Leipzig
|
|
|
|
Hallo Chris,
gerade habe ich diesen Thread hier gefunden, der ist doch von Dir, oder:
Word Templates umziehen
Jetzt habe ich erst mal verstanden, wo das Problem liegt. Obwohl in dem betreffenden Dialog der Pfad zum alten Server steht, kann ActiveDocument.AttachedTemplate.Name trotzdem eine lokale Normal.dot sein, und zwar wahrscheinlich dann, wenn das Dokument bereits einmal geöffnet wurde, als die Vorlage schon nicht mehr gefunden wurde. Das Dokument "merkt" sich den vergeblichen Versuch, die Vorlage zu finden, und nimmt, da es sie nicht findet, die lokale Normal.dot. Hier ist das ausführlich beschrieben, es gibt eine Reihenfolge, in der nach dem AttachedTemplate gesucht wird, die sich zwischen den Word-Versionen unterscheidet:
http://msdn.microsoft.com/de-de/library/aa140287(office.10).aspx#ID0EKOAC
Beschreibung des Vorlagepfads und der Vorlage Normal.dot in Word 2002
Trotzdem seht in dem Dialogfeld weiterhin der "alte" Vorlagenname, und zwar so lange, bis er explizit entfernt wird (z.B. mit der von Dir geplanten Prozedur oder auch von Hand in dem Dialog).
Für Deine Schleife kann das nur bedeuten, dass Du eine Abfrage vorschalten musst, in etwa:
Code: | If InStr(1, ActiveDocument.AttachedTemplate.Name, "normal", vbTextCompare) > 0 Then
.... |
_________________ Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa
Guter Rat ist teuer!
|
|
Gast
Verfasst am: 11. Jul 2008, 08:18 Rufname:
|
|
|
|
Lösung
das problem war dabei den alten template pfad zu öffnen.
---> das funktioniert so
' Dialog "Tools -> Templates and Addins" öffnen und "Document Template" auslesen
Set dlgTemplate = Dialogs(wdDialogToolsTemplates)
strPath = dlgTemplate.Template
msgbox strPath
wen das ganze skript interessiert:
Code: |
Sub AlleDateienimVerzeichnisAendern()
' Allen Dateien eines Verzeichnisses eine andere Dokumentvorlage zuweisen
'Variablen declaration
strServerAlt = "\\SERVERA\"
strServerNeu = "\\SERVERB\"
strVerzeichnis = "C:\blabla\"
With Application.FileSearch
.NewSearch
.FileName = "*.doc"
.LookIn = strVerzeichnis
.SearchSubFolders = True
If .Execute() > 0 Then
ReDim strDateien(.FoundFiles.Count)
ReDim strZugehOrdner(.FoundFiles.Count)
'Durchläuft alle Dateien, die in dem obigen Verzeichnis vorhanden
' sind.
For i = 1 To .FoundFiles.Count
strDateien(i) = .FoundFiles(i)
strZugehOrdner(i) = .FoundFiles(i)
Do
strDateien(i) = Right(strDateien(i), (Len(strDateien(i)) - _
InStr(strDateien(i), "\")))
Loop While InStr(strDateien(i), "\") > 0
Documents.Open FileName:=strZugehOrdner(i)
'Dialog "Tools -> Templates and Addins" öffnen und "Document" & _
"Template" auslesen
Set dlgTemplate = Dialogs(wdDialogToolsTemplates)
strPath = dlgTemplate.Template
If strPath = "Normal" Then
ActiveDocument.Close
ElseIf Left(strPath, 3) = "C:\" Then
ActiveDocument.Close
ElseIf Left(strPath, 9) = "\\SERVERB" Then
ActiveDocument.Close
Else
strPath = Right(strPath, Len(strPath) - Len(strServerAlt)) _
'hier wird die angegebene Anzahl der Zeichen
' abgeschnitten!!!!
strPath = strServerNeu + strPath
With ActiveDocument
.AttachedTemplate = strPath
.Save 'verhindert, dass Speichernachfrage kommt
.Close
End With
End If
Next i
End If
End With
End Sub
| [/code]
|
|
Gast
Verfasst am: 07. Aug 2008, 14:30 Rufname:
|
|
|
|
das skript is soweit ganz toll aber was mache ich wenn die vorlagen nicht mehr existieren?
gibt es einen befehl dateien zu überspringen die es nicht mehr gibt?
|
|
Lisa
Moderator; Word seit Word 5.0 (für DOS)

Verfasst am: 07. Aug 2008, 17:43 Rufname:
Wohnort: Leipzig
|
|
|
|
Hallo Gast,
ich versteh Deine Frage nicht. Der Sinn der Prozedur ist doch, allen Dateien, die eine Referenz auf eine nicht mehr existierende Vorlage aufweisen, einen Verweis auf eine aktuelle Vorlage zu geben. Es ist also klar, dass die Vorlage nicht mehr existiert, sonst bräuchte man ja das Ganze nicht durchzuführen. Ein Überspringen von Dateien, die einen Verweis auf eine nicht mehr existierende Vorlage haben, wäre ja gerade das Gegenteil von dem, was erreicht werden soll.
Kannst Du das nochmal genauer erklären?
Gruß
Lisa
_________________ Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa
Guter Rat ist teuer!
|
|
Haste
Gast
Verfasst am: 07. Jan 2009, 07:47 Rufname:
|
|
|
|
Ich habe genau das gleiche Problem mit der Referenz weis aber leider nicht wie das mit dem Makro funktioniert.
Kann da jemand helfen
|
|
haste
Gast
Verfasst am: 07. Jan 2009, 08:07 Rufname:
|
|
|
|
habe es so angepasste ist das richtig?
Sub AlleDateienimVerzeichnisAendern()
' Allen Dateien eines Verzeichnisses eine andere Dokumentvorlage zuweisen
With Application.FileSearch
.NewSearch
.FileName = "*.doc"
.LookIn = "\\Server\Home$\damms\Damm"
.SearchSubFolders = False
If .Execute() > 0 Then
ReDim strdateien(.FoundFiles.Count)
ReDim strZugehOrdner(.FoundFiles.Count)
'Durchläuft alle Dateien, die in dem obigen Verzeichnis vorhanden sind.
For i = 1 To .FoundFiles.Count
strdateien(i) = .FoundFiles(i)
strZugehOrdner(i) = .FoundFiles(i)
Do
strdateien(i) = Right(strdateien(i), (Len(strdateien(i)) - InStr(strdateien(i), "\")))
Loop While InStr(strdateien(i), "\") > 0
Documents.Open FileName:=strZugehOrdner(i)
With ActiveDocument
.AttachedTemplate = "C:\Templates\Letter.dot" 'ordnet die Vorlage "Letter" zu
.Save NoPrompt:=True 'verhindert, dass Speichernachfrage kommt
.Close
End With
Next i
End If
End With
End Sub
|
|
Gast
Verfasst am: 07. Jan 2009, 10:59 Rufname:
|
| |
|
|
Bei mir geht es jetzt auch aber ich habe Probleme wenn Unterordner in den Verzeichnissen liegen und dann erst die DOC's kommen.
kann da jemand helfen?
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
|
|
Verwandte Themen |
Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Word Serienbriefe: Inhaltssteuerelemente nach Öffnen der Datei löschbar |
0 |
Daniel57 |
202 |
22. Okt 2012, 12:44 Daniel57  |
 |
Word Serienbriefe: Wie Regel "Eingeben..." im SB wieder entfernen |
1 |
BenC |
1365 |
29. Jul 2011, 11:53 charlybrown  |
 |
Word Serienbriefe: Excel Datei, mit Word verknüpfen um eine Rechnung zu erstell |
0 |
Crix1908 |
1741 |
15. Jun 2011, 13:45 Crix1908  |
 |
Word Formate: Dokumentenvorlage |
1 |
padraig |
702 |
07. Sep 2007, 08:49 CaBe  |
 |
Word Formate: Datei/Neu ist weg ! |
1 |
Battlecat |
603 |
09. Aug 2007, 13:37 iso  |
 |
Word Serienbriefe: Datenquelle lässt sich nicht entfernen |
6 |
databecker |
2748 |
21. Mai 2007, 15:57 databecker  |
 |
Word Formate: Dokumentenvorlage: Titelseite und Folgeseiten unterschiedlic |
1 |
miss_k |
1310 |
12. Apr 2007, 16:08 Gast  |
 |
Word Formate: Dot Datei ändert selbständig die vorgegebene Schrift |
3 |
H.-R. Amsler |
2632 |
12. Sep 2006, 16:44 Hübi  |
 |
Word Formate: Dokumentenvorlage mit Hintergrundgrafik! |
1 |
Nixverstehen |
905 |
16. Jun 2006, 18:18 Rosalina  |
 |
Word Formate: datei in der weblayoutsicht einfügen |
0 |
mark2612 |
712 |
24. Mai 2006, 12:49 mark2612  |
 |
Word Formate: Office 2000 - 1,5 cm-Linie am linken Rand entfernen |
3 |
pharlap |
3703 |
11. Mai 2006, 16:53 Betty2004  |
 |
Word Formate: Wasserzeichen entfernen |
7 |
Word-Anfänger |
36067 |
04. Apr 2006, 09:18 Word-Anfänger  |
|
|