Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Code vereinfachen

VBA Code vereinfachen
02.09.2021 00:39:55
Marko
Hallo,
mit folgendem Code kann ich ein PDF erzeugen und dieses speichern. Die Ausführung dauert jedoch extrem lange ca.5 Minuten. Wie kann ich dieses Makro beschleunigen?
Vielen Dank für Eure Hilfe. Gruß Marko

Private Sub CommandButton2_Click()
CommandButton2.Caption = "PDF erzeugen"
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Dim strFilename As String
strFilename = Environ("USERPROFILE") & "\Documents\" & "\KoBo\" & Sheets("Tabelle3").Range("L20").Text & ".pdf"
If Dir(strFilename) = "" Then
Sheets("Tabelle1").Calculate
Sheets("Tabelle3").Calculate
Sheets("Tabelle3").Range("K65:K381").AutoFilter Field:=1, Criteria1:="x", visibledropdown:=False
Sheets("Tabelle3").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strFilename, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Else
MsgBox "Diese PDF-Datei existiert bereits", vbOKOnly + vbInformation, "Hinweis"
End If
Sheets("Tabelle3").Range("M2").FormulaLocal = "=I9"
MsgBox "Die vorläufige Bonusabrechnung wurde erfolgreich erstellt!", vbInformation, "PDF erzeugen"
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code vereinfachen
02.09.2021 06:54:11
ralf_b
erstmal frage ich mich warum du die Calculation auf manuell stellst und sie dann trotzdem auslöst.
Wie lange läuft denn das Script wenn du die beiden Calculates nicht auslöst?
AW: VBA Code vereinfachen
02.09.2021 07:32:15
Klaus
Hi,
ich schließe mich an: Das Script ist gut, langsam müssen die Calculates sein. Zum Verbessern der Geschwindigkeit müsste man also deine Daten und Formelstruktur sehen, nicht dein Script!
Verifizier erstmal die These. Lass das Makro so durchlaufen:

Private Sub CommandButton2_Click()
Dim t
t = Timer
CommandButton2.Caption = "PDF erzeugen"
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Dim strFilename As String
strFilename = Environ("USERPROFILE") & "\Documents\" & "\KoBo\" & Sheets("Tabelle3").Range("L20").text & ".pdf"
Debug.Print Timer - t & " STR_Filename"
If Dir(strFilename) = "" Then
Sheets("Tabelle1").Calculate
Debug.Print Timer - t & " Calculate1"
Sheets("Tabelle3").Calculate
Debug.Print Timer - t & " Calculate2"
Sheets("Tabelle3").Range("K65:K381").AutoFilter Field:=1, Criteria1:="x", visibledropdown:=False
Debug.Print Timer - t & " Autofilter"
Sheets("Tabelle3").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strFilename, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Debug.Print Timer - t & " PDF Export"
Else
MsgBox "Diese PDF-Datei existiert bereits", vbOKOnly + vbInformation, "Hinweis"
End If
Sheets("Tabelle3").Range("M2").FormulaLocal = "=I9"
Debug.Print Timer - t & " FormulaLocal"
MsgBox "Die vorläufige Bonusabrechnung wurde erfolgreich erstellt!", vbInformation, "PDF erzeugen"
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
und kopiere hier die Debug.Prints herein, dann sehen wir wo genau es lange dauert und wo nicht.
LG,
Klaus M.
Anzeige
VBA Code vereinfachen
02.09.2021 15:15:51
Marko
Hallo Klaus M.
vielen Dank für Deine Unterstützung. Ich habe mein Makro mit Deinem ersetzt und... jetzt läuft es wieder in der gewohnten Geschwindigkeit durch. Warum auch immer...
Viele Grüße, Marko
AW: VBA Code vereinfachen
03.09.2021 06:47:42
Klaus
Hallo Marko,
das macht überhaupt keinen Sinn, mein Makro müsste sogar ein paar Nanosekunden langsamer laufen. Es macht ja nichts anders, ausser Zeiten zu debuggen.
Naja, egal - was funktioniert muss nicht hinterfragt werden :-) Wenn es dir hilft, freut es mich.
LG,
Klaus M.
Anzeige
VBA Code vereinfachen
02.09.2021 15:21:07
Marko
Hallo Ralf,
vielen Dank für Deine Nachricht. Die Calculation habe ich auf manuell gestellt, weil ich im diesen "Beschleuniger" mir aus dem Netz geholt habe mit der Hoffnung das Makro damit zu beschleunigen.
Gruß, Marko
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige