Thema Datum  Von Nutzer Rating
Antwort
Rot Dokumentformatvorlagen einschl. Nummerierungsformatvorlagen in Dokumenten ersetzen
27.08.2013 11:59:54 ahstax
NotSolved

Ansicht des Beitrags:
Von:
ahstax
Datum:
27.08.2013 11:59:54
Views:
1206
Rating: Antwort:
  Ja
Thema:
Dokumentformatvorlagen einschl. Nummerierungsformatvorlagen in Dokumenten ersetzen

Hallo,

ich möchte aus einer Word-Vorlage.dot die darin enthaltenen Formatvorlagen auf bestehende Dokumente übertragen.

Es sollen dabei auch und insbesondere die Formatierungen und Vorlagen der Formatierungen für Nummerierungen und Aufzählungen übertragen werden. Folgender Code tut zwar was, aber nicht, was ich gerne hätte.

Blöderweise erhalte ich regelmäßig einen Fehler 4198 ("Befehl misslungen"), den ich Zeile 76ff. versuche abzufangen. 
Schlußendlich besagt mir die Messagebox Zeile 85 dann aber, dass KEINE Formatvorlage angewandt wurde. 

Kann mir jemand sagen, was falsch ist und wie zu ändern?

 

Public Sub FormatvorlagenZuweisen()
   
    Dim oTemplate As String
    Dim oDoc As Document
    Dim oDocPath As String
    Dim intDokumentenzaehler As Integer
    intDokumentenzaehler = 0
    Dim intDokumentenzaehlerBearbeitet As Integer
    intDokumentenzaehlerBearbeitet = 0
    
    Dim intAnzahlZuPruefenderDateien As Integer
    intAnzahlZuPruefenderDateien = 0
    
    Dim oStyle As Style
    Dim strStyle As String
    Dim DocTmp As Document
    Dim i As Long
    
    Dim stlVorlage As Style
    Dim intBenutzte As Integer
    Dim intVergeblich As Integer
    Dim intGeklappt As Integer
    Dim docVorlage As Document
    
    Set fso = CreateObject("Scripting.Filesystemobject")
    
    
    oTemplate = fm1.txtBxPfadVorlage.Text
    oDocPath = fm1.txtBxPfadDokumentenOrdner.Text


    Application.DisplayAlerts = wdAlertsNone
    
    fm1.cmdBtnStart.Caption = "Bearbeitung läuft"
    
    intAnzahlZuPruefenderDateien = fso.GetFolder(oDocPath).Files.Count
    
    For Each f In fso.GetFolder(oDocPath).Files
    
        intDokumentenzaehler = intDokumentenzaehler + 1
        
        fm1.cmdBtnStart.Caption = "Bearbeitung / Prüfung läuft" & vbCrLf & intDokumentenzaehler & "/" & intAnzahlZuPruefenderDateien
        
        If LCase(Right(f.Name, 3)) = "doc" Or LCase(Right(f.Name, 4)) = "docx" Or LCase(Right(f.Name, 4)) = "docm" Then
            Set oDoc = Application.Documents.Open(f.Path, Visible:=False)
            With oDoc
            
                .CopyStylesFromTemplate Template:=oTemplate
                
                '   http://www.office-archive.com/59-word/55712f65c723e7ee.htm
                
                .AttachedTemplate = oTemplate
                
                  
                  Set docVorlage = Documents.Open(oTemplate, Visible:=False)
                  
                    ' Copy all styles using the organizer
                  intBenutzte = 0
                  intVergeblich = 0
                  intGeklappt = 0
                  
                  On Error Resume Next
                  
                  For Each stlVorlage In docVorlage.Styles
                  
                    If stlVorlage.InUse = True Then
                        intBenutzte = intBenutzte + 1
                    End If
                  
                    Application.OrganizerCopy _
                        Source:=docVorlage.FullName, _
                        Destination:=oDoc.FullName, _
                        Name:=stlVorlage.NameLocal, _
                        Object:=wdOrganizerObjectStyles
                        
                        If Err.Number = 4198 Then
                            intVergeblich = intVergeblich + 1
                        Else
                            intGeklappt = intGeklappt + 1
                        End If
                            
                  Next stlVorlage
                  
                  'http://www.office-loesung.de/ftopic39646_0_0_asc.php
                  MsgBox intVergeblich & " vergebliche Versuche!" & Chr(13) & intGeklappt & " erfolgreiche!" & _
                        Chr(13) & intBenutzte & " benutzte!"
                  
                  ' Close the template and don't save any changes.
                  docVorlage.Close False
                                
                .Save
                .Close
            End With
            intDokumentenzaehlerBearbeitet = intDokumentenzaehlerBearbeitet + 1
            Set oDoc = Nothing
            
        End If
    Next
    Set fso = Nothing
    Application.DisplayAlerts = wdAlertsAll

    MsgBox "Bearbeitete Dokumente: " & intDokumentenzaehlerBearbeitet
    
    fm1.cmdBtnStart.Caption = "Übertragung Formatierung starten" 
    
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Dokumentformatvorlagen einschl. Nummerierungsformatvorlagen in Dokumenten ersetzen
27.08.2013 11:59:54 ahstax
NotSolved