VB: Word Templates umziehen

  • #1
C

chris_lalala

Guest
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
 
Thema:

VB: Word Templates umziehen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben