Nur Blätter als pdf drucken mit aktiver Checkbox

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Nur Blätter als pdf drucken mit aktiver Checkbox
von: Felix
Geschrieben am: 09.10.2015 14:34:24

Hallo zusammen,
ich bin am verzweifeln und brauche eure Experten-Hilfe.
Ich habe eine Arbeitsmappe mit 14 Blättern. Auf den Blättern 2 bis 14 befindet sich je eine Checkbox (AcitveX-Steuerelement).
Die Arbeitsmappe soll per Button als pdf gespeichert/gedruckt werden. Dabei soll das erste Blatt (auf dem befindet sich der Button) immer gedruckt werden und zudem alle Blätter, auf denen die Checkbox markiert ist.
Die Checkboxen haben bisher alle den Namen "CheckBox1", was für einen anderen Code ausreicht/funktioniert. Es ist aber kein Problem sie einzeln zu nummerieren (z.B. 1-13), was wahrscheinlich für dieses Makro besser ist.
Mein bisheriger Code zum abspeichern lautet:

Private Sub CommandButton2_Click()
Dim pfad4 As String
pfad4 = ThisWorkbook.Path & "\" & "1_Bericht" & "\" & Left(ActiveWorkbook.Name, Len( _
ActiveWorkbook.Name) - 4)
ActiveWorkbook.ExportAsFixedFormat _
               Type:=xlTypePDF, _
               Filename:=pfad4, _
               Quality:=xlQualityStandard, _
               IncludeDocProperties:=True, _
               IgnorePrintAreas:=False, _
               OpenAfterPublish:=False
End Sub

Vielen Dank schon mal für eure Hilfe
Grüße Felix

Bild

Betrifft: AW: Nur Blätter als pdf drucken mit aktiver Checkbox
von: Mullit
Geschrieben am: 09.10.2015 15:23:48
Hallo,
wenn Du ActiveX-Boxen hast, könnte sowas gehen:

Option Explicit

Public Sub test()
Dim objOLEObject As OLEObject
Dim wksSheet As Worksheet
Dim strPath As String
Application.ScreenUpdating = False
strPath = "C:\Users\MyUser\Documents\Excel\mytest.pdf"  'anpassen... 
For Each wksSheet In ThisWorkbook.Worksheets
    For Each objOLEObject In wksSheet.OLEObjects
       With objOLEObject
           If .progID = "Forms.CheckBox.1" Then _
             If .Name = "CheckBox1" And Not .Object.Value Then _
               wksSheet.Visible = xlSheetVeryHidden
       End With
    Next
Next
On Error Resume Next
ActiveWorkbook.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=strPath, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
If Err.Number <> 0 Then MsgBox "Error: " & _
  Err.Number & " " & Err.Description
On Error GoTo 0
For Each wksSheet In ThisWorkbook.Worksheets
      wksSheet.Visible = xlSheetVisible
Next
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß, Mullit

Bild

Betrifft: AW: Nur Blätter als pdf drucken mit aktiver Checkbox
von: Felix
Geschrieben am: 09.10.2015 16:47:35
Perfekt! Funktioniert genau so, wie ich's mir vorgestellt habe!
Vielen Dank Mullit!
Gruß Felix

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Nur Blätter als pdf drucken mit aktiver Checkbox"