Clever-Excel-Forum

Normale Version: Mehrere Blätter als PDF mit Vorauswahl (VBA)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
ich hab da bei einer Mappe ein Problem(chen) und vertraue mal wieder auf die Kraft des Forums Blush
Folgendes:
Ich habe eine ExcelMappe mit insges. 25 Blättern
Hier habe ich zum Drucken eine Maske in welcher ich anhaken kann, welches Blatt gedruckt werden soll.
Das funktioniert soweit.
Nun möchte ich diese Maske dazu hernehmen um aus den gewählten Blättern ein PDF zu erstellen.
Frage:
Zur AUswahl ist ja der Befehl Sheets(Array("Tabelle1", "Tabelle2" ....usw. nötig
Wie bekomme ich nun die Namen der ausgewählten Blätter in das Array ? und zwar mit den ganzen Anführungszeichen usw.
Oder gibts da ne andere Möglichkeit ?

Wäre echt super, wenn och da nen Tipp von euch haben könnte

Gruß
KLaus
Hallo!

Tabellenblätter in PDF umwandeln. VBA-Kennwort ist ein kleines a. Da kannst Du schauen wie ich das gemacht habe. Das Tool ist sowohl für "ExportAsFixedFormat" als auch für den PDF-Creator ausgelegt. Da kannst Du auch auswählen ob alle Blätter in eine PDF-Datei kommen oder in jeweils separate Dateien.

Gruß, René
Hallo René,
vielen Dank für Deine XLAM Habs mal schnell durchgeschaut. Ist ja ein richtiges Monsterteil.
RESPEKT :2323:23:
Aber mein Problem ist etwas anders geartet. Leider kann ich Dir die orig Datei nicht mitsenden, deshalb hab ich schnell mal ne kleine ZUsammengebaut und hoffe ich kann das Problemchen so besser erklären. Ich hab im code des Frames das mal kurz reingeschrieben was ich meine
Ich möchte eben nur die ausgewählten zu einer PDF zusammenführen.
Hast Du ne Idee
Gruß
Klaus
Private Sub CommandButton1_Click()

Dim vntSheetArray()      As Variant
Dim intSheetCounter      As Long
Dim bolOpenAfterPublish  As Boolean
Dim contUFCheckboxes     As Control


If MsgBox("Soll die Datei nach dem Erstellen angezeigt werden?", vbYesNo + vbQuestion, "Frage") = vbYes Then bolOpenAfterPublish = True

intSheetCounter = 0

For Each contUFCheckboxes In UserForm1.Controls
    If TypeName(contUFCheckboxes) = "CheckBox" Then
       If contUFCheckboxes.Value = True Then
          Redim Preserve vntSheetArray(0 To intSheetCounter)
          vntSheetArray(intSheetCounter) = contUFCheckboxes.Caption
          intSheetCounter = intSheetCounter + 1
       End If
    End If
Next contUFCheckboxes

ActiveWorkbook.Sheets(vntSheetArray).Copy

With ActiveWorkbook
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Environ("USERPROFILE") & "\Desktop\Test.pdf", _
                         Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                         IgnorePrintAreas:=False, OpenAfterPublish:=IIf(bolOpenAfterPublish, True, False)
    .Close SaveChanges:=False
End With

bolOpenAfterPublish = False

Unload Me

End Sub




VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel


Code erstellt und getestet in Office 15
Super danke:28:
Ich werde das testen (geht aber erst morgen)
Und melde mich dann nochmal bei Dir

Vielen vielen Dank:100100

Klaus
HAllo Mumpel,
habe Dein Script ausprobiert und es funzt soweit.
Hier naochmal ein dickes DANKESCHÖN
ABER
Ich habe in dem einen oder anderen Blatt Makros drin. Zum Teil auch bei "Worksheet_activate".
Diese Scripts funktioniern dann nicht, da hier Variable, die im Ursprung als Public deklariert sind, nach dem Kopieren nicht deklariert sind.
Wie bekommt man das Copy hin, ohne die Makros mitzunehmen ??

HAst Du da ne Idee ??

Gruß
Klaus
Setze vor dem Kopieren die Application.EnableEvents auf False, nach dem Kopieren wieder auf True. Dann sind zumindest die Tabellenereignisse nicht im Weg.
Gute Idee, aber ich habe folgendes getan.
Normalerweise ist nur das Blatt eingebledet, welches für die Eingaben benötigt wird.
Wenn ich nun (mit Hilfe Deines Scripts) die ausgewählten Blätter einblende, dann alle auswähle und dann ein PDF erstelle, so enthält die PDF-Datei nur die eingeblendeten Blätter. :17:
Genau das was ich haben wollte.
Trotzdem nochmal vielen vielen Dank für all eure Hilfe:100:

Guß
KLaus