Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
nur bestimmte Tabellenblätter drucken
31.05.2018 19:39:23
Felix
Hallo zusammen,
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nur bestimmte Tabellenblätter drucken
01.06.2018 08:43:07
ChrisL
Hi Felix
Die Blätter werden nur versteckt
wksSheet.Visible = xlSheetVeryHidden
Am Ende vom Code wieder einblenden und gut ist.
For Each wksSheet In ThisWorkbook.Worksheets
wksSheet.Visible = True
Next
cu
Chris
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige