Anzeige
Archiv - Navigation
1628to1632
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
Export einzelner Zeilen in PDF Datei
15.06.2018 09:05:35
Klaus
Hi,
vielleicht habt Ihr ja eine Ahnung wieso dass nicht so will wie ich es brauch?
Also der Code stellt einfach nur einen Export der einzelnen Zeilen in Excel da (begrenzt auf Zeile 2 bis 11). Und alles wird dort gespeichert wo die Excel Datei liegt.
Jetzt das Problem:
Führe ich dieses Makro unter Office 2016 16.0.9330.2073 64 Bit mit MS VBA 7.1 auf einen Windows 10 Rechner aus, funktioniert er einwandfrei.
Führe ich aber nun das Makro, gleiche Datei in der Office Version (16.0.4639.1000) 32 Bit mit MS VBA 7.1 unter Windows 7 aus kommt die Fehlermeldung:
LaufzeitFehler 32809: Anwenndungs oder objektdefinierter Fehler
und er Markiert mir die Zeile "With .PageSetup"
Auch die Zeilen "BringThisWindowToTop=True" versteht er nicht.
Ich hab absolut keine Ahnung warum und hoffe auf eure Unterstützung
In der Userform:
Private Sub StartExport_Click()
Dim zeit As Date
Dim i As Integer
Dim j As Integer
Dim start As Date
start = Now()
Fortschritt.ProgressBar1.Max = 100
For i = 2 To 11
j = (10 / 100) * (i - 1) * 100
Fortschritt.ProgressBar1.Value = j
Fortschritt.Caption = (i - 1) & "fertig"
' BringThisWindowToTop = True
If Range("A" & i).Value = "" Then
GoTo A
End If
With ActiveSheet
With .PageSetup
.PrintTitleRows = "$1:$1"
.PrintArea = "A" & i & ":" & "L" & i
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
'.PrintOut
'.PrintPreview
.ExportAsFixedFormat Filename:=ActiveWorkbook.Path & "\" & i & Range("A" & i), Type: _
=xlTypePDF
End With
GoTo A
A:
Next i
Application.DisplayAlerts = True
Application.Visible = True
Application.ScreenUpdating = True
zeit = Now() - start
MsgBox zeit
End Sub
Im Modul1:
Sub ExportjedeZeile()
' Tastenkombination: Strg+j
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.Visible = False
Application.ScreenUpdating = True
Fortschritt.Show
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Export einzelner Zeilen in PDF Datei
16.06.2018 20:22:53
fcs
Hallo Klaus,
ich hab jetzt mal deine Makros unter Windows 10 und Office 365, Excel 2016 (32 Bit) getestet.
Das Ausblenden der Excel-Anwendung vor der Anzeige des Userforms und die Wiederanzeige nach dem Schließen der Userform führt bei mir zu einer merkwürdigen Anzeige von leeren Excel-Fenstern.
Ich hab das deshalb rausgenommen. Die Userform wird jetzt auf die Größe und Position des Excel-Fensters angepasst. Ebenso die Breite der Progressbar.
Ob man die Userform gebunden oder ungebunden anzeigt spielt hier keine Rolle.
Allerdings kommt manchmal im Userform die Anzeige "keine Rückmeldung" im Userform.Titel und die Anzeige bricht zusammen - wird zum Schluss aber wieder angezeigt..
Ursache?
BringThisWindowToTop scheint eine Funktion in der 64-bit-Version zu sein, die von der 32-Bit-Version nicht unterstützt wird.
Spielt für dieses Makro aber eigentlich keine Rolle, denn Excel ist ja die aktive Anwendung, es sei denn die willst während der Erstellung der PDF-Dateien unbedingt in anderen Anwendungen arbeiten.
Gruß
Franz
'Userform-Code
Option Explicit
Private wks As Worksheet
Private Sub StartExport_Click()
Dim zeit As Date
Dim i As Integer
Dim j As Integer
Dim start As Date
start = Now()
Fortschritt.ProgressBar1.Max = 100
With wks.PageSetup
.PrintTitleRows = "$1:$1"
.PrintTitleColumns = ""
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
For i = 2 To 11
j = (10 / 100) * (i - 1) * 100
'BringThisWindowToTop = True
If Range("A" & i).Value  "" Then
With wks
With .PageSetup
.PrintArea = wks.Range("A" & i & ":" & "L" & i).Address
End With
'.PrintOut
'.PrintPreview
.ExportAsFixedFormat Filename:=ActiveWorkbook.Path & "\" _
& i & .Range("A" & i), Type:=xlTypePDF
End With
End If
Fortschritt.ProgressBar1.Value = j
Fortschritt.Caption = (i - 1) & " fertig"
Fortschritt.Repaint
Next i
zeit = Now() - start
MsgBox zeit
End Sub
Private Sub UserForm_Initialize()
'Tabellenblatt mit den zu exportierenden Daten setzen
Set wks = ActiveSheet
'Userform auf Fenstergröße vergrößern
With ActiveWindow
Me.Top = .Top
Me.Left = .Left
Me.Height = .Height
Me.Width = .Width
End With
'Breite und Position des Forschrittbalkens anpassen
With Me.ProgressBar1
.Left = Me.Left + 20
.Width = Me.Width - 40
End With
'Schaltflächen  positionieren
With Me.StartExport
.Left = Me.Left + (Me.Width / 2 - .Width / 2)
End With
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
Me.Hide
wks.Activate
End If
End Sub


'Code in Modul1
Sub ExportjedeZeile()
' Tastenkombination: Strg+j
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
Fortschritt.Show False 'nicht gebunden anzeigen
'    Fortschritt.Show ' gebunden anzeigen
With Application
.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub

Anzeige
AW: Export einzelner Zeilen in PDF Datei
16.06.2018 20:48:44
Klaus
Hey Franz,
cool danke für deinen Testversuch und die kleinen Verbesserungen.
Den Fehler mit "keine Rückmeldung" habe ich auch, auch wenn mir das auch nicht klar ist warum.
Die ersten 3 Exporte und Titelanzeige funktionieren aber die folgenden 4,5,6,7 wird die Anwendung weiß. Ab dem 8 Export wird wieder alles ordentlich angezeigt.
Auf jeden Fall sehr komisch dieses Verhalten von Office.
Danke

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige