VB: Word Templates umziehen

Dieses Thema VB: Word Templates umziehen im Forum "Windows XP Forum" wurde erstellt von chris_lalala, 25. Juni 2008.

Thema: VB: Word Templates umziehen Hallo Liebe Kollegen, da ich der wahnsinns programierer bin brauch ich eure hilfe! ;-) ich habe einen kunden...

  1. Hallo Liebe Kollegen,

    da ich der wahnsinns programierer bin brauch ich eure hilfe! ;-)

    ich habe einen kunden welcher fast alle word dateien mit einer vorlage erstellt hat.
    diese vorlagen liegen auf serverA.

    ServerA gibt es aber nicht mehr! die vorlagen liegen jetzt auf serverB.

    jetzt brauch ich ein makro welches jede word datei öffnet, reinschaut ob pfad zu serverA angegben ist und diesen mit serverB ersetzt.

    ich hab hier auch ein skript gefunden welches die dateien öffnet und den neuen template pfad reinschreibt. jedoch gibt es unterverzeichnisse bei serverA und serverB.

    mein riesiger programierverstand sagt mir wie ich vorgehen muss:
    schneide die zeichen \\serverA\ ab und ersetze sie mit \\serverB\

    wie ich das umsetzte ist mir allerdings nicht so ganz klar.

    ich zähle die zeichen von \\serverA\ schneide diese ab und ersetze das.
    aber wie geht das in VB syntax??
     
  2. hier das skript:

    Code:
    Sub AlleDateienimVerzeichnisAendern()
    ' Allen Dateien eines Verzeichnisses eine andere Dokumentvorlage zuweisen
    
    With Application.FileSearch
    .NewSearch
    .FileName = *.doc
    .LookIn = \\ServerB\Templates\
    .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)
    With ActiveDocument
    .AttachedTemplate = \\ServerB\Templates\Letter.dot->ordnet die Vorlage Letter zu
    .Save->verhindert, dass Speichernachfrage kommt
    .Close
    End With
    
    Next i
    End If
    End With
    End Sub 
    
    
     
  3. hier die 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 
    
     
Die Seite wird geladen...

VB: Word Templates umziehen - Ähnliche Themen

Forum Datum
Welches ist das letzte kaufbare Office und Fehler beim Scrollen in Word: Text verdoppelt sich Microsoft Office Suite 14. Juli 2016
Word und Powerpoint hakeln. Filme abspielen führt zu Aufhängen Windows 10 Forum 17. Dez. 2015
Webhosting für WordPress auf Windows Server Webentwicklung, Hosting & Programmierung 21. Juli 2015
Öffnen mit Doppelklick funktioniert bei Word u. Excel Dateien nichtmehr Microsoft Office Suite 10. Feb. 2015
4x Word 2013 in einem Account, wie aktivieren? Microsoft Office Suite 22. Okt. 2014