Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Druck als PDF Datei
#11
(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


Angehängte Dateien
.xlsm   einzelne Sheets per Userform in PDF.xlsm (Größe: 112,48 KB / Downloads: 2)
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)
Antworten Top
#12
Mega, Danke !

Hab den Code zum Drucken noch erweitert. Meine Zieldatei hat nur 22 verschiedene Checkboxen, hoffentlich vergesse ich da keine Verweise :) 

Private Sub CommandButton1_Click()

If CheckBox1 = True And CheckBox2 = True And CheckBox3 = True Then
    Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select


ElseIf CheckBox1 = True And CheckBox2 = True Then
    Sheets(Array("Tabelle1", "Tabelle2")).Select

ElseIf CheckBox2 = True And CheckBox3 = True Then
    Sheets(Array("Tabelle2", "Tabelle3")).Select

ElseIf CheckBox1 = True And CheckBox3 = True Then
    Sheets(Array("Tabelle1", "Tabelle3")).Select

ElseIf CheckBox1 = True Then
    Sheets("Tabelle1").Select

ElseIf CheckBox2 = True Then
    Sheets("Tabelle2").Select

ElseIf CheckBox3 = True Then
    Sheets("Tabelle3").Select
End If


ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True


End Sub
Antworten Top
#13
Eigenzitat:

Zitat:Spätestens ab fünf Sheets wird es grotesk!


21
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)
Antworten Top
#14
Klasse deine Beispieldatei und Danke dafür ! Ich denke damit werde ich mir die Sache zurecht biegen können.

Danke an ALLE Unterstützer !
Antworten Top
#15
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)
Antworten Top
#16
Hallo Mike,

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:
  • schauan
Antworten Top
#17
Hi Uwe,

wie kommt man denn auf so was ... Huh

Worksheets(i).Select j = 0
j = 1

Kannte ich noch gar nicht. Hab gleich mal bei MS nachgeschaut, ist ja sogar beschrieben.
Das reicht dann auch:

Worksheets(i).Select False

Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#18
Hi André
(07.04.2021, 19:28)schauan schrieb: Das reicht dann auch:

Worksheets(i).Select False

Nö! Nicht, wenn das aktive Blatt nicht zu den angehakten Blättern gehört. Wink

Gruß Uwe
Antworten Top
#19
Hi Uwe,
Stimmt. Man müsste beim ersten Treffer nur selektieren und ab dem zweiten hinzufügen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste