Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1348to1352
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
Inhaltsverzeichnis

Druckvorschau

Druckvorschau
17.02.2014 12:15:37
herbert
Hallo,
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:
Userbild
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

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckvorschau
17.02.2014 12:31:44
EtoPHG
Hallo Herbert,
Funktioniert tadellos ohne Call SeitenansichtAusschalten, könnte also ggf. an dieser Prozedur liegen!
Gruess Hansueli

AW: Druckvorschau
17.02.2014 12:36:06
herbert
Hallo Hansueli,
vielen Dank für Deine Antwort. Und entschuldige bitte, doch die von Dir angeführte Codezeile ist es nicht, denn die habe ich nach einem Test nur vergessen herauszunehmen.
Du sagst, bei Dir funzt der übrige Code! Wieso dann wieder bei mir nicht? Was könnte das sein? Hast Du da evtl. eine Idee?
Servus

AW: Druckvorschau
17.02.2014 13:21:32
Rudi
Hallo,
Es sollen alle ausgewählten Tabellen in einer PDF-Datei zusammengefasst werden.
dann musst du die alle in ein neues Workbook kopieren und das Workbook exportieren. Mit deinem Code erzeugst du für jedes Blatt eine pdf.
Gruß
Rudi

Anzeige
AW: Druckvorschau
17.02.2014 13:42:06
herbert
Hallo Rudi,
vielen Dank erst mal. Und wie müsste bitte der Code dafür aussehen?
Sertvus

pdf erzeugen
17.02.2014 13:51:44
Rudi
Hallo Herbert
teste mal:
Private Sub cmbPDF_Click()
Dim cntBox As MSForms.Control, wbTemp As Workbook
Me.Hide
For Each cntBox In TabsFürReportDruck.Controls
If TypeOf cntBox Is MSForms.CheckBox Then
If cntBox = True Then
If wbTemp Is Nothing Then
Sheets(cntBox.Caption).Copy
Set wbTemp = ActiveWorkbook
Else
Sheets(cntBox.Caption).Copy _
after:=wbTemp.Sheets(wbTemp.Sheets.Count)
End If
End If
End If
Next cntBox
If Not wbTemp Is Nothing Then
With wbTemp
.ExportAsFixedFormat _
Type:=xlTypePDF, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
.Close False
End With
End If
Me.Show
End Sub

Gruß
Rudi

Anzeige
AW: pdf erzeugen
17.02.2014 16:37:42
herbert
Hallo Rudi,
leider bekomme ich bei Deinem PDF-Code einen Laufzeitfehler 9, Index außerhalb des gültigen Bereiches! Hast Du da eine Idee, woran das liegen kann?
Servus

AW: pdf erzeugen
17.02.2014 20:35:52
Rudi
Hallo Herbert,
Index außerhalb des gültigen Bereiches
vermutlich gibt es ein Blatt nicht.
Ich kann ja viel aber nicht hellsehen.
Wie erzeugst du die Captions? Dynamisch beim Start der UF oder statisch in der UF eingetragen?
Lad mal das Projekt hoch oder schick es mir per Email (was lt. Forumsregeln nicht erwünscht ist).
Gruß
Rudi

AW: pdf erzeugen
18.02.2014 09:22:43
herbert
Hallo Rudi,
leider liegt es nicht an einem fehlenden Blatt. Sind alle da.
bzgl. "Wie erzeugst du die Captions?" nicht böse sein, aber das habe ich bereits in meinem ersten Posting als letzten Code aufgeführt. Aber um es abzukürzen, sie werden dynamisch erzeugt.
Schick mir doch bitte Deine eMail-Adr. (hg@herbertgrom.de) dann schicke ich es Dir mal. Danke!
Servus

Anzeige
Schick mir doch bitte Deine eMail-Adr.
18.02.2014 10:07:06
Rudi
Hallo,
hast du doch.
Hab dir erst am Sonntag was geschickt, worüber du dich gefreut hast.
Gruß
Rudi

AW: Druckvorschau
17.02.2014 14:05:47
Rudi
Hallo,
noch die Vorschau:
Private Sub cmbPreview_Click()
Dim cntBox As MSForms.Control, strTmp As String
Me.Hide
For Each cntBox In TabsFürReportDruck.Controls
If TypeOf cntBox Is MSForms.CheckBox Then
If cntBox = True Then
If strTmp = "" Then
strTmp = cntBox.Caption
Else
strTmp = strTmp & ";" & cntBox.Caption
End If
End If
End If
Next
If strTmp  "" Then
Sheets(Split(strTmp, ";")).PrintPreview
End If
Me.Show
End Sub

Gruß
Rudi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige