ich hoffe ihr könnt mir bei meinem Problem helfen, weil ich bin mit meinem Latein am Ende.
Folgende Problemstellung:
Ich habe eine Mappe mit 14 Tabellenblättern. Blatt 1 stellt eine Art Auswertungsblatt dar und die restlichen 13 Blätter sind mehr oder weniger identisch. Auf den Blättern 2-14 befindet sich jeweils eine CheckBox (Bezeichnung immer gleich).
Ich möchte nun mit einem Button eine pdf erstellen bzw. speichern, bei der Blatt 1 und zusätzlich alle Blätter mit aktivierter CheckBox berücksichtigt werden. Und diese möchte ich dann idealerweise manuell in einem von mir gewählten Ordner abspeichern.
Das ist was ich bisher fabriziert habe:
Allerdings löscht mir dabei mein Makro alle Arbeitsblätter, die nicht gedruckt werden.
Private Sub CommandButton2_Click()
Dim objOLEObject As OLEObject
Dim wksSheet As Worksheet
Dim pfadbericht As String
Application.ScreenUpdating = False
pfadbericht = ThisWorkbook.Path & VBA.Left$(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5)
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:=pfadbericht, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
If Err.Number 0 Then
MsgBox ("Error: " & _
Err.Number & " " & Err.Description & _
vbNewLine & vbNewLine & "Unter Umständen ist der " & _
"schon abgespeicherte Bericht geöffnet.")
On Error GoTo 0
For Each wksSheet In ThisWorkbook.Worksheets
wksSheet.Visible = xlSheetVisible
Next
Else
MsgBox ("Der Bericht wurde als pdf-Datei erstellt und " & _
"in Ordner '1_Bericht' abgelegt!")
End If
End If
End Sub
Ich hoffe jemandem fällt dazu eine elegante Lösung ein.
Vielen Dank schon mal! :)
Grüße Felix