07.04.2021, 17:10 (Dieser Beitrag wurde zuletzt bearbeitet: 07.04.2021, 17:13 von RPP63.)
(07.04.2021, 16: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, 19:15 (Dieser Beitrag wurde zuletzt bearbeitet: 07.04.2021, 19: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