Verweise in allen Dokumenten eines Ordners löschen
                        Ein oft gehörter und leider auch vorkommender Fehler. Es werden Dokumente aufgrund von Vorlagen erstellt. Diese Vorlagen sidn für alle zugänglich auf einem Netzlaufwerk gespeichert. Nun werden die Server umbenannt oder neue Server angelegt und die Vorlagen verschoben. Fürt die neuen Dokumente spielt es keine Rolle. In den bisher gespeicherten Dokumenten wurden aber die Pfade zu den alten Vorlagen als Verweise mitgespeichert.
Nun dauert es sehr lange, bis die alten Dokumente geöffnet werden. Das liegt daran, dass Word versucht, die Vorlagen zu finden. Dies ist aber nicht möglich, da es die Vorlagen an diesem Ort nicht mehr gibt.
Da hilft nur eins: die Verweise müssen gelöscht werden. Das ist aber nur möglich, wenn man die Dokumente alle einzeln öffnet, die Verweise löscht, das Dokument speichert und wieder schließt.
 Hierzu gibt es ein Makro, das diese Vorgänge automatisch macht:
 
 001
 002
 003
 004
 005
 006
 007
 008
 009
 010
 011
 012
 013
 014
 015
 016
 017
 018
 019
 020
 021
 022
 023
 024
 025
 026
 027
 028
 029
 030
 031
 032
 033
 034
 035
 036
 037
 038
 039
 040
 041
 042
 043
 044
 045
 046
 047
 048
 049
 050
 051
 052
 053
 054
 055
 056
 057
 058
 059
 060
 
 Sub Verweise_entfernen() 
     Dim anzdatei As Integer 
     Dim Pfad 
   
    Set fs = Application.FileSearch 
     
     'hier kann auch ein fester Pfad eingegeben werden
    Pfad = InputBox("Geben Sie den Pfad an", "Pfad") 
     
     'hier werden nur die insgesamt gefundenen Dateien ausgegeben
    If Pfad = "" Then 
        MsgBox "Kein Pfad eingegeben!" 
        Exit Sub 
    End If 
     
    If Dir(Pfad, vbDirectory) = "" Then 
        MsgBox "Pfad kann nicht gefunden werden!" 
        Exit Sub 
    End If 
     
    With fs 
        .NewSearch 
        .FileType = msoFileTypeWordDocuments    'Word-Dokumente!
        .LookIn = Pfad 
        .SearchSubFolders = True 
         'folgender Code wird nicht unbedingt gebraucht
        If .Execute = 0 Then 
            MsgBox "Es wurden keine Dateien." 
            Exit Sub 
        End If 
        anzdatei = .FoundFiles.Count 
    End With 
      
       
     ' Verweise in den einzelnen Dateien löschen
    On Error Resume Next 
     
    For j = 1 To anzdatei 
    WordBasic.DisableAutoMacros 1 
        If Err.Number <> 0 Then 
             
            Documents.Open fs.FoundFiles(j) 
                     
             'Verweis wird gelöscht
            With ActiveDocument 
                .UpdateStylesOnOpen = False 
                .AttachedTemplate = "" 
            End With 
             
             'Dokument wird gespeichert und geschlossen
            ActiveDocument.Save 
            ActiveDocument.Close 
        End If 
    Next j 
    WordBasic.DisableAutoMacros 0 
     
    MsgBox "Es wurden " & anzdatei & " Datei(en) neu gespeichert!" 
 
 End Sub 
 
 
  
In Zeile16 bis 19 wird erstmal überprüft, ob es den angegebenen Pfad überhaupt gibt. In den Zeilen 21 bis 35 werden alle Dokuemnte aus dem Verzeichnis, und zwar wirklich nur die Dokumente, ausgelesen.
In Zeile 39 werden due Automatischen Makros ausgeschaltewt, damit beim Öffnen der Dokumente keine Makros ausgeführt werden.
Anschließend werden alle eingelesen Dokuemnte der Reihe nach geöffnet, die Verweise gelöscht, gespeichert und weider geschlossen.
Aber Vorsicht: die Ausführung des Codes kann bei sehr vielen Dokumenten erhebliche Zeit in Anspruch nehmen. Und immer vorher allen Dokumente sichern. Am besten immer vorher erstmal testen.
 
			
			
		
                           
                           
                             
                              
     
     
     
    
                             
                             
                             
                                
                                
Für weitere Infos bitte auf den Text klicken
  
                              
                           
                           
	
		
		
              
	
	   
            
	   
                 
                 
                  
 
       
    Cookies speichern Informationen lokal auf Ihrem Rechner, ohne die Verwendung kann der Funktionsumfang beeinträchtigt werden. Weitere Informationen
    Annehmen