Druckvorschau
17.02.2014 12:15:37
herbert
in einer Userform, die mir eine voreingestellte Auswahl an Tabellen auflistet, wähle ich mit den Checkboxen die für den Ausdruck benötigten Tabellen aus. Der Druck auf Papier funktioniert mit dem beigefügten Code einwandfrei. Die Druckvorschau funktioniert so nicht richtig (die ohne Haken werden auch mit angezeigt) und der PDF-Druck klappt auch nicht wie ich es will. Es sollen alle ausgewählten Tabellen in einer PDF-Datei zusammengefasst werden.
Könnt ihr mir da bitte helfen? Dafür schon mal vielen Dank im Voraus!
Hier die 3 Routinen:
Private Sub cmbPreview_Click()
Dim cntBox As MSForms.Control
Me.Hide
For Each cntBox In TabsFürReportDruck.Controls
If TypeOf cntBox Is MSForms.CheckBox Then
If cntBox = True Then
Sheets(cntBox.Caption).PrintPreview
Call SeitenansichtAusschalten
End If
End If
Next
Me.Show
End Sub
Private Sub cmbPDF_Click()
Dim cntBox As MSForms.Control
Me.Hide
For Each cntBox In TabsFürReportDruck.Controls
If TypeOf cntBox Is MSForms.CheckBox Then
If cntBox = True Then
Sheets(cntBox.Caption).ExportAsFixedFormat Type:=xlTypePDF, Quality:= _
xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End If
End If
Next
Me.Show
End Sub
Private Sub cmbDruck_Click()
Dim cntBox As MSForms.Control
sFrage = MsgBox("Möchten Sie die angezeigten Blätter nun auf einem Drucker ausdrucken?", _
vbYesNoCancel, "Drucken?")
If sFrage = vbYes Then
Application.Dialogs(9).Show
Me.Hide
For Each cntBox In TabsFürReportDruck.Controls
If TypeOf cntBox Is MSForms.CheckBox Then
If cntBox = True Then
Sheets(cntBox.Caption).PrintOut
End If
End If
Next
Me.Show
End If
End Sub
Und, falls benötigt, hier noch der "Initialize"-Code:
Private Sub UserForm_Activate()
Dim cntBox As Control, intAnzahl%, intZahl%, intAbstand%
With Me
.StartUpPosition = 0
.Top = GetSystemMetrics(SM_CYSCREEN) * 0.55 - .Height '* Wert darf nicht größer 1 sein!
.Left = 980
End With
With Sheets("zMin")
iLastRow = .Cells(Rows.Count, [TabAuswahlDruckCol]).End(xlUp).Row
intAnzahl = [TabAuswahlDruckAnzRows]
intAbstand = 60
For intZahl = 1 To intAnzahl
Set cntBox = Controls.Add("Forms.CheckBox.1")
cntBox.Left = 10
cntBox.Top = intAbstand
cntBox.Width = 80
cntBox.Caption = .Cells(intZahl + 5, [TabAuswahlDruckCol]).Value
intAbstand = intAbstand + 20
Next
Me.Height = intAbstand + 40
End With
For Each cntBox In TabsFürReportDruck.Controls
If TypeOf cntBox Is MSForms.CheckBox Then
cntBox = True
End If
Next
End Sub
Servus