07.04.2021, 16:10 (Dieser Beitrag wurde zuletzt bearbeitet: 07.04.2021, 16:13 von RPP63.)
(07.04.2021, 15:56)schauan schrieb: Nö.
[…]
Von der Logik her musst Du Dich von der größtmöglichen Auswahl zu den kleinen durcharbeiten.
Sorry, aber das ist doch Killefit, André!
Spätestens ab fünf Sheets wird es grotesk!
Man sammelt die Sheets mittels Schleife über den TypeName des Controls in einem Array,
kopiert dieses Sheet-Array in eine neue Mappe,
exportiert diese (ActiveWorkbook) als PDF
und schließt die temporäre Mappe, ohne sie zu speichern.
Mal ein Code aus einem meiner Muster, den ich nicht anpassen werde:
Code:
Private Sub RPP()
Dim ctrl As Control
Dim i&, j&, arr() As String
For Each ctrl In Me.Controls
If TypeName(ctrl) = "CheckBox" Then
If ctrl Then
ReDim Preserve arr(j)
arr(j) = Worksheets(Int(Right(ctrl.Name, 1))).Name
j = j + 1
End If
End If
Next
Worksheets(arr).Copy
ActiveWorkbook.ExportAsFixedFormat _
xlTypePDF, Environ("UserProfile") & "\Desktop\MeineAuswahl", OpenAfterPublish:=True
ActiveWorkbook.Close False
End Sub
Die Mappe lade ich mal hoch.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
07.04.2021, 18:15 (Dieser Beitrag wurde zuletzt bearbeitet: 07.04.2021, 18:25 von schauan.)
Hi Ralf,
ich schrieb
Zitat:Kann man sicher noch abkürzen, ist aber erst mal zum Verständnis.
im Beispiel ging es erst mal um 3 Blätter.
Du kannst die Klarnamen in Abhängigkeit des Zustandes der Checkboxen einem Array sammeln und damit dann die Blätter direkt in der Mappe selektieren und ausgeben ohne diese gesondert in eine temporäre zu legen ....
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
vielleicht reicht das ja schon für die 22 CheckBoxen:
Code:
Private Sub CommandButton1_Click()
Dim i As Long, j As Long
Dim oWs As Worksheet
Set oWs = ActiveSheet
For i = 1 To 22
If Me.Controls("CheckBox" & i) Then
Worksheets(i).Select j = 0
j = 1
End If
Next i
If j = 1 Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
oWs.Select
End If
End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28 • schauan