VBA Code PDF Speichern dauert ewig
#1
Hallo zusammen
Ich habe ein Excel mit einem Makro welches mir die Tabellenblätter auf PDF ausgibt jedoch dauert die Erstellung des PDF's ewig. Es kommt die Meldung wird veröffentlicht und dann geht es ca. 30sec bis die Datei erstellt wurde.
An was liegt das? Kann mir da jemand helfen?
Ich habe folgenden VBA Code:
Sub PDFInfo()
 
If MsgBox("Neues PDF-Info erstellen?  " & vbCrLf & "Gleichnamige PDF-Datei wird Ÿberschrieben!", _
 _
 vbOKCancel + vbInformation, "PDF-Info") = vbOK Then

Dim xlName As String
Dim xlPfad As String
Dim xlOpenAfterPublish As Boolean
Rem PDF-…ffnen-Abfrage erstellen
If MsgBox("Soll die PDF-Datei nach dem Erstellen angezeigt werden?", vbYesNo + vbQuestion, " _
Frage") = vbYes Then xlOpenAfterPublish = True
Rem Dateiname aus Zelle auslesen
Sheets("Info").Select
xlName = "Hallo"
x2Name = "wo"
x3name = "du"
Rem Dateipfad aus Zelle auslesen
Sheets("Cover Sheet").Select
xlPfad = Range("AM3").Value
With ActiveWorkbook
Rem PDF-File erstellen, in Dateipfad speichern
     .ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & xlName & "_" &   _
_
x2Name & x3name & x4name, Quality:=xlQualityStandard, _
                          IncludeDocProperties:=True, IgnorePrintAreas:=False, from:=8, To:=8,   _
_
OpenAfterPublish:=IIf(xlOpenAfterPublish, True, False)
End With
Rem Boolean-Variable ausschalten
xlOpenAfterPublish = False
Sheets("Cover Sheet").Select
End If
End Sub
Top
#2
Hallo,

dein Code ist ein heilloses Durcheinander. Du deklarierst Variablen nur teilweise, benennst Variablen komisch (x2Name, x3Name --> das erste heißt xlName mit L wie Ludwig, nicht x1Name mit Eins), verwendest dann beim Pfad noch eine Variable x4Name, die zuvor gar nicht festgelegt wurde. Dafür findet die Variable xlPfad überhaupt keine Verwendung.

Bring mal den Code in Ordnung, vielleicht klappt es dann auch mit der Geschwindigkeit. Bei mir ist die pdf-Erstellung ruckzuck erledigt gewesen.
Schöne Grüße
Berni
Top
#3
Hallo Paul

dein Programm bietet tatsächlich mehrere Möglichkeiten für eine Optimierung.

Allerdings ergeben sich keine Anhaltspunkte, warum eine Seite PDF 30 Sekunden dauert. Die Ursache hierfür liegt wahrscheinlich woanders.

Also, versuchs mal mit den Klassikern und baue dein Makro nach folgendem Schema um:

Code:
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
 
  ... dein code ...
 
  Application.ScreenUpdating = True
  Application.Calculation = xlCalculationAutomatic

vg, MM
Top
#4
Verzichte immer auf 'Select' und 'Activate' in VBA
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#5
Hallöchen,

Zitat:Verzichte immer auf 'Select' und 'Activate' in VBA

Verzichte nach Möglichkeit auf 'Select' und 'Activate' in VBA
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste