• Merhaba Ziyaretçi,
    Microsoft 365 Uygulamaları ile ilgili yeni haberler, dikkat çekici konular, ilgi ile takip edeceğiniz yazılar için.

    Abone Olun
  • ESTE - Microsoft Office Eğitimleri

    Yeni yıl Microsoft Office Eğitim planlarınız için bütçenizi oluşturmadan önce ESTE eğitim kalitesi ile tanışın. 🙌
    Kullanıcıların ihtiyacı olan yazılı materyal, dosya ve video kaynağı desteğimiz ile tüm ofis çalışanlarının iş süreçlerini rahatlatacak eğitimler planlayın. 🎯
    Microsoft Office eğitimlerimiz hakkında detaylı bilgi için bize ulaşın.

    👉 Microsoft Office Eğitim Talebi

Yardım pdf yapma macro yavaşlığı

incsoft

Yeni Üye
Müdavim
Katılım
28 Ocak 2019
Mesajlar
250
En iyi yanıt
0
Puanları
18
Yaş
44
Konum
Ankara
Ad Soyad
Ufuk İNCE
Office Vers.
Office 2019 Professional
Aşağıdaki macrom çok aşırı şekilde yavaş neden olabilir arkadaşlar?


Sub PDFYAP()
Dim yol As String, yil As Integer, ay As String, gun As String
yol = "\\DS1\ortak\DT\KİŞİŞEL KLASÖRLER\Uİ\GÜNLÜK GÖNDERİLECEK MAİLLER\"
yil = Year(Date)
ay = Month(Date)
gun = ActiveSheet.Name


If Len(ay) < 2 Then ay = 0 & ay

ActiveSheet.Range("A1:Q164").ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityMinimum, OpenAfterPublish:=True, fileName:=yol & "TR - " & yil & "-" & ay & "-" & gun & ".pdf"
End Sub
 

okans

Yeni Üye
Katılım
8 Eyl 2018
Mesajlar
5
En iyi yanıt
0
Puanları
1
Yaş
50
Konum
Kayseri
Ad Soyad
Okan
Sub PDFYAP_HIZLI()

Dim yol As String
Dim dosyaAdi As String
Dim yil As String, ay As String, gun As String

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

On Error GoTo Temizle

yol = "\\DS1\ortak\DT\KİŞİŞEL KLASÖRLER\Uİ\GÜNLÜK GÖNDERİLECEK MAİLLER\"

yil = Format(Date, "yyyy")
ay = Format(Date, "mm")
gun = ActiveSheet.Name

dosyaAdi = yol & "TR - " & yil & "-" & ay & "-" & gun & ".pdf"

ActiveSheet.Range("A1:Q164").ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=dosyaAdi, _
Quality:=xlQualityMinimum, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False 'PDF açılmasın (en büyük hız artışı)

Temizle:

Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic

End Sub

Network yavaşsa PDF üretim süresi uzar.

Çok daha hızlı yöntem:​

Önce masaüstüne oluştur → sonra kopyala

Sub PDFYAP_LokalSonraAg()

Dim ws As Worksheet
Dim masaustu As String
Dim agYolu As String
Dim dosyaAdi As String
Dim lokalDosya As String
Dim agDosya As String
Dim yil As String, ay As String, gun As String
Dim sonSatir As Long, sonSutun As Long

Set ws = ActiveSheet

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

On Error GoTo Temizle

'Masaüstü yolu
masaustu = Environ("USERPROFILE") & "\Desktop\"

' Ağ yolu
agYolu = "\\DS1\ortak\DT\KİŞİŞEL KLASÖRLER\Uİ\GÜNLÜK GÖNDERİLECEK MAİLLER\"

'Tarih bilgisi
yil = Format(Date, "yyyy")
ay = Format(Date, "mm")
gun = ws.Name

dosyaAdi = "TR - " & yil & "-" & ay & "-" & gun & ".pdf"

lokalDosya = masaustu & dosyaAdi
agDosya = agYolu & dosyaAdi

' Otomatik dolu alan
sonSatir = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
sonSutun = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
ws.PageSetup.PrintArea = ws.Range(ws.Cells(1, 1), ws.Cells(sonSatir, sonSutun)).Address

' Önce masaüstüne oluştur
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=lokalDosya, _
Quality:=xlQualityMinimum, _
OpenAfterPublish:=False

' Sonra ağ klasörüne kopyala
FileCopy lokalDosya, agDosya

' İstersen masaüstündekini sil
Kill lokalDosya

Temizle:

Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic

End Sub
 
Üst Alt