title image


Smiley Re: Ref-Feld
Hallo schwarzes Pferd,



ich verstehe einfach nicht, warum du dich so auf die Textmarke versteifst. Ich denke mir, dass hierfür keine Textmarke benötigt wird, denn selbst in der Beschreibung ist davon keine Rede. Du kannst also frei im Text schreiben und genau die Faxnummer mußt du halt mit den "Steuerzeichen" umgeben.



Ich habe mich noch einmal auf einer anderen Seite umgesehen und dort steht auch nichts von einer Textmarke "Die Faxnummer kann (wenn mit den erforderlichen Steuerzeichen versehen) direkt aus Ihrem textbasierendem Dokument ausgelesen werden oder später von Hand eingegeben werden.". Es kommt somit wirklich nur auf den mit den Steuerzeichen umgebenen Text (die eigentliche Faxnummer) an. Vielleicht solltest du vor dem Drucken noch den Dokumentschutz aufheben und nach dem Drucken wieder einfügen.



Vielleicht hilft dir aber folgendes Makro weiter, welches du direkt zur Vorlage (Du hast doch für das Faxformular sicherlich eine gesonderte Vorlage geschaffen) speicherst und dort mit einer entsprechenden Schaltfläche auf der Symbolleiste verknüpfst.







Option Explicit

Const v_strModulname As String = "olDoc."    'hier den Modulnamen ggf noch anpassen



Sub Druck_mit_Faxdrucker()

    

    'mit diesem Makro soll sicher gestellt werden, dass man für nur einen Ausdruck

    'einen anderen Drucker (Faxdrucker) mit den üblich gesetzten Standardwerten aus Word heraus

    'benutzt und nach erfolgtem Druck dann wieder den vorherig eingestellten Drucker

    'als Standarddrucker hat.



    Dim strAktuellerDrucker As String

    Dim intDocProt As Integer       'Wert zum Merken des Dokumentschutzes

    Dim strDocProtPW As String      'Kennwort des Dokumentschutzes

    

    strDocProtPW = ""               'hier anderes Kennwort einsetzen falls erforderlich

    

  

    'Deklaration des genauen gewünschten Druckers

    'Der Druckername nuß genau mit der Bezeichnung aus der Systemsteuerung | Drucker

    'übereinstimmen (im Bsp. den Eintrag 'Mein Wunschdrucker HPLJ1100' ersetzen)

    Const strWunschDrucker As String = "EdDeNET SFF Printer Driver"



    'Fehlerbehandlungsroutine bestimmen

    On Error GoTo Err_Druck_Standard_WunschDrucker

    

    'Merken des derzeitigen Drucker

    strAktuellerDrucker = ActivePrinter

    

    'Setzen des WunschDrucker als ActivePrinter

    ActivePrinter = strWunschDrucker

    

    'Dokumentschutz aufheben und ggf. Kennwort mit übergeben

    intDocProt = fct_DocUnProtect(strDocProtPW)

    

    'Dokumentschutz noch einmal überprüfen

    Select Case ActiveDocument.ProtectionType

    Case wdAllowOnlyFormFields

        'Start *** hier jetzt der Code für weiterbestehenden Dokumentschutz

        MsgBox "Dokumentschutz konnte nicht aufgehoben werden - es kann zu Druckproblemen kommen"

        'Ende *** hier jetzt der Code für weiterbestehenden Dokumentschutz

    Case Else

        'Start *** hier jetzt der Code unter aufgehobenem Dokumentschutz

        StatusBar = "Jetzt ist das Dokument nicht geschützt"

        'Ende *** hier jetzt der Code unter aufgehobenem Dokumentschutz

    End Select

    

    'Drucken des gesamten Dokumentes als ein Exemplar

    Application.PrintOut

    

'Sprungmarke zum Beenden des Makros

'es erfolgt das Rücksetzen des AktivenDruckers in den vor Makrobeginn

End_Druck_Standard_WunschDrucker:



    ActivePrinter = strAktuellerDrucker

    

    'setzt den Dokumentschutz, falls er überhaupt vorhanden war, wieder sicher

    Select Case intDocProt

    Case 2  'Dokumentschutz vom Typ wdAllowOnlyFormFields

        Call fct_DocProtect(True, strDocProtPW)

    Case Else

        StatusBar = "Es bestand kein Dokumentschutz zur Formularbearbeitung welcher wiederhergestellt werden muß"

    End Select

    

        'Start *** hier jetzt der Code nach dem erneuten Setzen des Dokumentschutzes

        StatusBar = "Bestand Dokumentschutz, wurde dieser jetzt wieder gesetzt"

        'Ende *** hier jetzt der Code nach dem erneuten Setzen des Dokumentschutzes

    

    Exit Sub

  

'Fehlerbehandlungsroutine mit abgefangenem Fehler 5216 (Drucker nicht gefunden)

'Es wird nicht gedruckt

Err_Druck_Standard_WunschDrucker:



    Select Case Err

    Case 5216

        MsgBox "Der gewählte Wunschdrucker wurde nicht gefunden. " & _

               "Überprüfen Sie Ihre Einstellungen!" & vbCr & _

               "Der Druckauftrag wird abgebrochen", _

               vbCritical, _

               "Druckerfehler"

    Case Else

        MsgBox "Fehlernummer: " & Err.Number & vbCr & _

               "Fehlerbeschreibung: " & Err.Description, _

               vbCritical, _

               "Fehler: " & Err.Number

    End Select

    

    'Fehler wird wieder zurück gesetzt

    Err.Clear

    

    'Makro wird mit Sprung zu Sprungmarke ... fortgesetzt

    GoTo End_Druck_Standard_WunschDrucker

           

End Sub



Function fct_DocProtect(Optional ByVal boolNoReset As Boolean, Optional ByVal strPassword As String)



    'Protects the document from changes.

    'boolNoReset = True >> Word does not reset form fields to their default results when a

    'form is protected from changes using ToolsProtectDocument (applies only if .Type is wdAllowOnlyFormFields).

    

    'Schützt das aktuelle Dokument für die Formularbearbeitung

    'ist strPassWord <> "" dann wird ein Kennwort entsprechend dem Wert varPassWort gesetzt

    'ist boolNoReset = True werden die Feldinhalte nicht zurück gesetzt

    

    On Error GoTo Err_fct_DocProtect

    

    Debug.Print "Start : " & v_strModulname & "fct_DocProtect"

    Debug.Print " > Inf_fct_DocProtect : NoReset = " & boolNoReset

    

    Select Case Len(strPassword)

    Case 0

        Debug.Print " > Inf_fct_DocProtect : strPassword (exist) = False"

    Case Else

        Debug.Print " > Inf_fct_DocProtect : strPassword (exist) = True"

    End Select

    

    ActiveDocument.Protect Type:=wdAllowOnlyFormFields, _

                   NoReset:=boolNoReset, _

                   Password:=CVar(strPassword)

                   

End_fct_DocProtect:

    

    Err.Clear

    Debug.Print "End_fct_DocProtect"

    Exit Function

    

Err_fct_DocProtect:



    Debug.Print " > Err_fct_DocProtect : by " & v_strModulname & "fct_DocProtect"

    Select Case Err

    Case 4248

        StatusBar = "Funktion steht nicht zur Verfügung, da kein Dokument vorhanden"

        Debug.Print " > Err_fct_DocProtect : Dokument nicht vorhanden"

    Case 4605

        StatusBar = "Dokument ist schon geschützt"

        Debug.Print " > Err_fct_DocProtect : "; Err.Number & " : " & Err.Description

        Debug.Print " > Err_fct_DocProtect : document is protected"

    Case 5485 'Kennwort nicht korrekt

    Case Else

        Debug.Print " > Err_fct_DocProtect : " & Err.Number

        MsgBox "Fehler: " & Err.Number & vbCr & Err.Description, _

               vbCritical, v_strModulname & "Err_fct_DocProtect"

    End Select

    GoTo End_fct_DocProtect

    

End Function



Function fct_DocUnProtect(Optional ByVal strPassword As String) As Integer

    

    'Removes protection from the active document. If the document is not

    'protected, an error occurs.

    

    'Hebt den Dokumentschut das aktuellen Dokumentes auf

    'strPassWord <> "" dann wird ein Kennwort entsprechend dem

    'Wert varPassWort mitgegeben

    

    Dim oDoc As Document

    On Error GoTo Err_fct_DocUnProtect

    

    Debug.Print "Start : " & v_strModulname & "fct_DocUnProtect"

    

    Select Case Len(strPassword)

    Case 0

        Debug.Print " > Inf_fct_DocUnProtect : strPassword (exist) = False"

    Case Else

        Debug.Print " > Inf_fct_DocUnProtect : strPassword (exist) = True"

    End Select

    

    Set oDoc = ActiveDocument

    

    fct_DocUnProtect = oDoc.ProtectionType

    

    Debug.Print " > Inf_fct_DocUnProtect : ProtectionType = " & oDoc.ProtectionType

    

    Select Case oDoc.ProtectionType

    Case wdAllowOnlyFormFields

        oDoc.Unprotect Password:=CVar(strPassword)

        If oDoc.ProtectionType = wdNoProtection Then

            Debug.Print " > Inf_fct_DocUnProtect : protection from the active document is removed"

        Else

            StatusBar = "Der Dokumentschutz konnte nicht aufgehoben werden"

        End If

    Case Else

        'There is nothing to do

        'WdProtectionType like: wdAllowOnlyComments, wdAllowOnlyRevisions, wdNoProtection)

    End Select

                   

End_fct_DocUnProtect:

    

    Err.Clear

    Debug.Print "End_fct_DocUnProtect"

    Exit Function

    

Err_fct_DocUnProtect:



    Debug.Print "Err_fct_DocUnProtect : by " & v_strModulname & "fct_DocUnProtect"

    Select Case Err

    Case 4248 'kein Dokument verfügbar

        StatusBar = "Funktion steht nicht zur Verfügung, da kein Dokument vorhanden"

        Debug.Print " > Err_fct_DocUnProtect : document do not exist"

    Case 5485 'Kennwort nicht korrekt

        StatusBar = Err.Description

        Debug.Print " > Err_fct_DocUnProtect : unknown password"

        Debug.Print " > Err_fct_DocUnProtect : document will be protect"

        Resume Next

    Case Else

        Debug.Print " > Err_fct_DocUnProtect : " & Err.Number

        MsgBox "Fehler: " & Err.Number & vbCr & Err.Description, _

               vbCritical, v_strModulname & "Err_fct_DocUnProtect"

    End Select

    GoTo End_fct_DocUnProtect

    

End Function







Code eingefügt mit Syntaxhighlighter 2.5







Oder aber du biegst dir die normale Wordruckfunktion in der Vorlage hierzu um.




 
Gruß Martin




eMail und OfficeLine




geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: