Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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
VBA: Ausgabe als Pdf über Checkbox
06.04.2020 08:20:38
Alexander
Hallo liebe Herber-Gemeinde,
ich habe Dank Eurer Hilfe vor ein paar Jahren ein Problem lösen können, welches ich heute erneut in einer abgewandelten Version habe. Vielleicht kennt jemand die Lösung.
Ausgangssitutation ist, dass ich auf dem Sheet "Start" in Feld "R11" eine Auswahl treffen kann: 1-16.
Je nach dem welche Zahl eingetragen wird, erscheint im Sheet "Serienbrief" unterschiedliche Adressdaten.
Mit einem Userform kann über Checkboxen (1-16) eine Auswahl getroffen werden, welche final ausgedruckt werden sollen.
Dies habe ich folgendermaßen gemacht:
Private Sub Auswahl_print_Click()
If CheckBox1 = True Then Sheets("Start").Select
Range("R11").Select
ActiveCell.FormulaR1C1 = "1"
Sheets("Serienbrief").PrintOut
If CheckBox2 = True Then Sheets("Start").Select
Range("R11").Select
ActiveCell.FormulaR1C1 = "2"
Sheets("Serienbrief").PrintOut
etc.

Dies klappt soweit einwandfrei. Ich möchte jetzt allerdings die komplette Auswahl in ein PDF- _
Dokument exportieren. Hierzu habe ich bereits ein Skript, was sich aber bisher nur auf verschiedene Sheets bezogen hat:

Private Sub Auswahl_print_pdf_Click()
On Error GoTo Auswahl_print_pdf_Click_Error
Dim varSheets() As Variant, lngIndex As Long
If CheckBox1 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet1": lngIndex = lngIndex + 1
End If
If CheckBox2 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet2": lngIndex = lngIndex + 1
End If
If CheckBox3 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet3": lngIndex = lngIndex + 1
End If
If CheckBox4 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet4": lngIndex = lngIndex + 1
End If
If CheckBox5 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet5": lngIndex = lngIndex + 1
End If
If CheckBox6 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet6": lngIndex = lngIndex + 1
End If
If CheckBox7 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet7": lngIndex = lngIndex + 1
End If
If CheckBox8 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet8": lngIndex = lngIndex + 1
End If
If CheckBox9 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet9": lngIndex = lngIndex + 1
End If
If CheckBox10 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet10": lngIndex = lngIndex + 1
End If
If CheckBox11 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet11": lngIndex = lngIndex + 1
End If
If CheckBox12 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet12": lngIndex = lngIndex + 1
End If
If CheckBox13 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet13": lngIndex = lngIndex + 1
End If
If CheckBox14 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet14": lngIndex = lngIndex + 1
End If
If CheckBox15 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet15": lngIndex = lngIndex + 1
End If
If CheckBox16 Then
ReDim Preserve varSheets(lngIndex): varSheets(lngIndex) = "Sheet16": lngIndex = lngIndex + 1
End If
Sheets(varSheets).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "/Seriendruck.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Sheets("Serienbrief").Select
On Error GoTo 0
Exit Sub
Auswahl_print_pdf_Click_Error:
MsgBox ("Druck nicht möglich. Kein Dokument ausgewählt.")
End Sub

Wie kann ich die beiden Befehle verbinden, dass der Ausdruck nicht die Kombination der einzelnen Sheets 1-16 sind, sondern immer gleiche Sheet "Serienbrief" - nur mit den unterschiedlichen Adressdaten?
Gruß
Alexander

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Ausgabe als Pdf über Checkbox
09.04.2020 15:31:12
KrisM
uff, wenn ich es richtig verstehe, kommt derzeit eine pdf Datei mit allen Schreiben raus
du willst aber, dass für jedes schreiben eine einzelne pdf Datei erstellt wird, richtig?
Falls ich richtig liege würde ich eine einfache Schleife verwenden... Ähnlich sowas
Private Sub Auswahl_print_pdf_Click()
On Error GoTo Auswahl_print_pdf_Click_Error
Dim i As Integer
For i = 1 To 16                                                                 'Maximale  _
Anzahl der Sheets anpassen
Sheets(i).Select
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "/Seriendruck_" & i & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False                                                         'Auf FALSE  _
gesetzt, damit die Performance gleich bleibt
On Error GoTo 0
Exit Sub
Auswahl_print_pdf_Click_Error:
MsgBox ("Druck nicht möglich. Kein Dokument ausgewählt.")
End Sub

Natürlich kann man das noch ohne "Select" lösen.
Anzeige
AW: VBA: Ausgabe als Pdf über Checkbox
14.04.2020 07:36:15
Alexander
Hallo KrisM,
danke für Deine Antwort. Dass meine ich aber nicht. ;-)
Das Excel-Sheet "Serienbrief" hat variable Felder (Name, Adressfelder, Anrede, etc.) die abhängig von der Eingabe einer Zahl (1-16) in dem Sheet "Start" anders "bestückt" wird.
Wenn ich nun in meinem Formular einen Haken bei Checkbox1 setze, soll nicht einfach nur der Druckbefehl ausgeführt werden, sondern zuerst im Sheet "Start" die Zahl 1 eingegeben werden, damit das zu druckende Dokument auch die richtigen Daten hat. Erst dann wird der Druckbefehl ausgeführt und geht dann anschließend zur Prüfung der nächsten Checkbox2...
Im Optimalfall kommt dann alles in einem pdf-Dokument dann raus.
Ist nicht ganz einfach zu beschreiben - normalerweise macht man sowas in Access, aber da kenne ich mich nicht aus.
Gruß
Alexander
Anzeige

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige