zappo74
Goto Top

Abfrage beim Druck eines Word Dokuments - mit oder ohne bestimmte Inhalte drucken

Guten Morgen allerseits,

ich habe eine Frage zu Word 2016 und höher.

Ist es möglich beim Druck einer Datei eine Abfrage oder Auswahl zu erhalten, mit der ich wählen kann, wie die Datei geruckt wird?
Hintergrund ist folgender. Ich möchte unser Briefpapier als digitale Vorlage nutzen. Dazu habe ich es als Hintergrundbild in die Kopfzeile eingefügt.
Nun benötige ich jedoch eine Version für den regulären Ausdruck und eine für die digitale (PDF) Version.

Ich hätte jedoch gerne nur eine Datei, bei der ich beim Druck entscheiden kann, ob sie so mit allem gedruckt wird, oder bestimmete Elemente wie das Hintergrundbild weggelassen werden.

Ist das möglich? eventuell mit VBA?

Wäre für sachdienliche Hilfe sehr dankbar. face-smile

Content-ID: 1911101262

Url: https://administrator.de/forum/abfrage-beim-druck-eines-word-dokuments-mit-oder-ohne-bestimmte-inhalte-drucken-1911101262.html

Ausgedruckt am: 25.12.2024 um 08:12 Uhr

colinardo
Lösung colinardo 14.02.2022 aktualisiert um 12:44:55 Uhr
Goto Top
Servus.
Zitat von @zappo74:
Ich hätte jedoch gerne nur eine Datei, bei der ich beim Druck entscheiden kann, ob sie so mit allem gedruckt wird, oder bestimmete Elemente wie das Hintergrundbild weggelassen werden.

Ist das möglich? eventuell mit VBA?
Ja. Eine Möglichkeit wäre folgende: Versehe dein Bild in den Eigenschaften in der "Titel" Eigenschaft mit einem Namen, bspw. myimage

screenshot

und dann fügst du im Dokument folgendes Makro im Codeabschnitt ThisDocument ein

screenshot

und passt den von dir für das Bild vergebenen Namen in Zeile 7 des Codes an. Danach das Dokument als *.docm speichern, schließen und neu öffnen. Wenn man jetzt druckt kommt vor dem Druck eine einfach MsgBox die dich fragt ob das Bild ausgeblendet werden soll oder nicht.

Achtung: Das Skript geht davon aus das das Bild in der ersten Seite des ersten Abschnitts im Header liegt, wenn woanders muss die Referenz in Zeile 6 an die eigenen Bedürfnisse angepasst werden.
Public WithEvents app As Application

Sub ShowBackgroundImage(state As Boolean)
    Dim shp As Shape
    With ActiveDocument
        For Each shp In .Sections(1).Headers(wdHeaderFooterPrimary).Shapes
            If shp.Title = "myimage" Then  
                shp.Visible = state
                exit for
            End If
        Next
    End With
End Sub

Private Sub app_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
    If MsgBox("Soll das Hintergrundbild für den Druck ausgeblendet werden?", vbYesNo Or vbQuestion, "Variante wählen") = vbYes Then  
        ShowBackgroundImage False
    Else
        ShowBackgroundImage True
    End If
End Sub

Private Sub Document_Open()
    Set app = Application
End Sub
Die Vorlage kannst du ja nach deinem Gusto anpassen und bei Bedarf um mehr Elemente ergänzen.

Grüße Uwe
zappo74
zappo74 14.02.2022 aktualisiert um 13:41:47 Uhr
Goto Top
Hey, das ist dja super.

Ich hab aber 2 Probleme

1. Wenn ich den Code so benutze wird das Bild immer nur für die erste Seite ausgeblendet. Folgeseiten nicht.
Da ich mich mit VBA so Null auskenne habe ich mal für die 2. Seite .sections(2) versucht. Da tut sich aber nichts.
Auch
for Each shp In .Sections.Headers(wdHeaderFooterPrimary).Shapes für (ich dachte mit alle :D) geht nicht..
For Each shp In ActiveDocument.Range.Sections.Headers(wdHeaderFooterPrimary).Shapes auch nicht..


Jedes Bild in der Kopfzeile wird auch automatisch auf den Folgeseiten hinterlegt. Ausgeblendet wird aber nur Seite 1.

2. Als PDF Druck funktioniert es dann, jedoch schmeißt der normale Drucker dann nur noch ein Kaudawelsch raus..
Kein Ahnung warum..
colinardo
Lösung colinardo 14.02.2022 aktualisiert um 13:44:51 Uhr
Goto Top
Zitat von @zappo74:

Hey, das ist dja super.

Ich hab aber 2 Probleme

1. Wenn ich den Code so benutze wird das Bild immer nur für die erste Seite ausgeblendet. Folgeseiten nicht.
Da ich mich mit VBA so Null auskenne habe ich mal für die 2. Seite .sections(2) versucht. Da tut sich aber nichts.
Auch or Each shp In .Sections.Headers(wdHeaderFooterPrimary).Shapes für (ich dachte mit alle :D) geht nicht..
Jedes Bild in der Kopfzeile wird auch automatisch auf den Folgeseiten hinterlegt. Ausgeblendet wird aber nur Seite 1.
Lässt sich leicht ändern in dem du die Methode so änderst und alle Header in allen Sections durchläufst.
Sub ShowBackgroundImage(state As Boolean)
    Dim shp As Shape, section As section, header As HeaderFooter
    With ActiveDocument
        For Each section In .Sections
            For Each header In section.Headers
                For Each shp In header.Shapes
                    If shp.Title = "myimage" Then  
                        shp.Visible = state
                    End If
                Next
            Next
        Next
    End With
End Sub
2. Als PDF Druck funktioniert es dann, jedoch schmeißt der normale Drucker dann nur noch ein Kaudawelsch raus..
Kein Ahnung warum..
Kann ich hier nicht nachvollziehen, es wird sonst nichts geändert.
Vielleicht Dokument mal vorher noch abspeichern mit ActiveDocument.Save
zappo74
zappo74 14.02.2022 um 13:47:24 Uhr
Goto Top
Geht auch nicht.. Ich denke es ist ein Problem mit dem Bild.
Wenn ich Seiten hinzufüge wird das Bild ja automatisch über die Kopfzeile eingesetzt.
Wenn ich mir die Eigenschaften dann ansehe, haben die Bilder der Folgeseiten keinen alternativen Titel mehr und werden somit wohl auch nicht gefunden. Vermute ich..
colinardo
colinardo 14.02.2022 aktualisiert um 13:56:49 Uhr
Goto Top
Zitat von @zappo74:

Geht auch nicht.. Ich denke es ist ein Problem mit dem Bild.
Geht hier im Test einwandfrei mit multiplen Sections und Headern (gerade/ungerade). Da hat das Doc wohl einen Schuss.
Wenn ich Seiten hinzufüge wird das Bild ja automatisch über die Kopfzeile eingesetzt.
Wenn ich mir die Eigenschaften dann ansehe, haben die Bilder der Folgeseiten keinen alternativen Titel mehr und werden somit wohl auch nicht gefunden. Vermute ich..
Das ist nicht normal. Header Footer sind nur Referenzen da wurde wohl irgendwo dupliziert eingefügt.
zappo74
zappo74 14.02.2022 um 13:56:58 Uhr
Goto Top
Da hat das Doc wohl einen Schuss.

Ich mach das mal neu und geb Rückmeldung..
zappo74
zappo74 14.02.2022 um 14:59:39 Uhr
Goto Top
Okay, nachdem ich es jetzt 2 mal komplett neu gemacht habe, geht es.
Anscheinend gib es ein Problem mit der Refezenz in der Datei. Keine Ahnung woran es lag.

Vielen Dank!!!