Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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
Antworten 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
Antworten 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)
Antworten Top


Gehe zu:


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