Makro Klasör Kaydı

Katılım
31 Ağustos 2023
Mesajlar
19
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Arkadaşlar merhaba,
81 il ile ilgili verilerin olduğu bir excel tablosu var elimde. Bu verileri ayrı ayrı PDF'ler olarak kaydeden bir makro kullanıyorum. Makro PDF dönüşümü yaparken bütün PDF'leri excel dosyasının olduğu klasöre kaydediyor. Sizlere sorum/ricam kullandığım makro üzerinde değişiklik yaparak excel sayfalarını kendisiyle aynı isimdeki klasöre kaydedebilecek şekilde düzenlenebilir mi? Örnek olarak excel sayfasının adı "Adana", excel sayfasının olduğu klasörde aynı zamanda "Adana" adında da bir klasör olacak. PDF kaydını direkt bu klasöre yapabilir mi?

Kod:
Private Sub CommandButton1_Click()
For x = 1 To Sheets.Count
yol = ThisWorkbook.Path & "\" & Sheets(x).Name
On Error GoTo hata:
    Sheets(x).ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol
hata:
Next
MsgBox "İşlem tamamlandı."
End Sub
Kullandığım kod bu. Teşekkür ederim.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
749
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Deneyiniz,

Kod:
Private Sub CommandButton1_Click()
Dim x As Integer
Dim yol As String
Dim klasorYol As String

On Error GoTo hata:

For x = 1 To Sheets.Count
    yol = ThisWorkbook.Path & "\" & Sheets(x).Name & "\" & Sheets(x).Name & ".pdf"
    klasorYol = ThisWorkbook.Path & "\" & Sheets(x).Name
    If Dir(klasorYol, vbDirectory) = "" Then
        MkDir klasorYol
    End If
    Sheets(x).ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol
Next
MsgBox "İşlem tamamlandı."
Exit Sub
hata:
    MsgBox "Bir hata oluştu: " & Err.Description
End Sub
 
Katılım
31 Ağustos 2023
Mesajlar
19
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Hocam çok teşekkür ederim çok güzel çalıştı. Acaba şöyle bir şey ile geliştirmek mümkün olur mu?

Her ilin klasörünün içine sabit isimli bir klasör, o klasörün içine de pdf dosyamız gelecek şekilde.

Örnek olarak; Adana(klasörün adı)>Yusuf(her ilde aynı isimde olacak)>Adana(PDF)

İl adı klasör adı olacak, sonrasında her ilin içerisinde yusuf adında bir klasör olacak ve içerisinde ilgili ilin PDF dosyası olacak.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
749
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Deneyiniz,

Kod:
Private Sub CommandButton1_Click()
Dim x As Integer
Dim yol As String
Dim klasorYol As String
Dim testKlasorYol As String

On Error GoTo hata:

For x = 1 To Sheets.Count
    klasorYol = ThisWorkbook.Path & "\" & Sheets(x).Name
    testKlasorYol = klasorYol & "\Yusuf"
    yol = testKlasorYol & "\" & Sheets(x).Name & ".pdf"
    If Dir(klasorYol, vbDirectory) = "" Then
        MkDir klasorYol
    End If
    If Dir(testKlasorYol, vbDirectory) = "" Then
        MkDir testKlasorYol
    End If
    Sheets(x).ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol
Next
MsgBox "İşlem tamamlandı."
Exit Sub
hata:
    MsgBox "Bir hata oluştu: " & Err.Description
End Sub
 
Katılım
31 Ağustos 2023
Mesajlar
19
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Hocam ne kadar teşekkür etsem az gerçekten. Beni öyle büyük bir iş yükünden kurtardınız ki anlatamam.
 
Katılım
31 Ağustos 2023
Mesajlar
19
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Kolay gelsin, iyi çalışmalar.
Hocam neredeyse 1 yıldır kullanıyorum bir sıkıntı çıkmıyordu ama son 1-2 aydır dönüşümler çok yavaşladı. Normalde 81 ili 2-3 dakika içerisinde dönüştürüyorken şu anda 15 dakikayı buluyor. Dönüşüm esnasında dönüşümün yapılacağı klasörü açtığımda dosya oluşup oluşup kayboluyor, sanki tek seferde oluşturamıyor gibi geliyor anlatabildim mi bilmiyorum. Bu durum neyden kaynaklanıyor acaba?
 
Katılım
31 Ağustos 2023
Mesajlar
19
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Bugün farklı bir hata aldım. "Bir hata oluştu: Automation error çağrılan nesne istemciden ayrılmış." dönüşüm işlemi başlıyor 1-2 il dönüştürdükten sonra bu hatayı alıyorum.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
917
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Kod:
Private Sub CommandButton1_Click()
    Dim x As Integer
    Dim yol As String
    Dim klasorYol As String
    Dim testKlasorYol As String

    On Error GoTo hata

    For x = 1 To Sheets.Count
        Debug.Print "İşleniyor: " & Sheets(x).Name
        klasorYol = ThisWorkbook.Path & "\" & Sheets(x).Name
        testKlasorYol = klasorYol & "\Yusuf"
        yol = testKlasorYol & "\" & Sheets(x).Name & ".pdf"

        If Dir(klasorYol, vbDirectory) = "" Then MkDir klasorYol
        If Dir(testKlasorYol, vbDirectory) = "" Then MkDir testKlasorYol

        Sheets(x).ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol

        DoEvents  ' Excel'in yanıt vermeye devam etmesini sağlar
    Next

    MsgBox "İşlem tamamlandı."
    Exit Sub

hata:
    MsgBox "Hata oluştu (" & Sheets(x).Name & "): " & Err.Description
End Sub
İlk başlarda 81 sayfa (il) 2-3 dakikada PDF'e çevrilirken artık 15 dakikayı buluyor.
Klasörde PDF dosyaları oluşup kayboluyormuş gibi davranıyor diyorsunuz.

PDF dönüşümleri geçici dosya oluşturur. Disk doluysa veya geçici klasör bozuksa hata alınabilir.
81 sayfayı sırayla dönüştürmek ciddi miktarda bellek ve CPU tüketebilir. Excel uzun işlemler sırasında kilitlenebilir.

yukardaki kodu bir deneyin bakalım
 
Katılım
31 Ağustos 2023
Mesajlar
19
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Hocam kurum bilgisayarı ortak bir ağa bağlı. Odamıza gelen ağda mı sorun var bilmiyorum. Başka bir odadaki bilgisayardan denediğimde çok hızlı ve sorunsuz bir şekilde dönüşümü yaptı. Aynı ağ aslında. Ama o bilgisayar çok daha iyi bir donanıma sahip. Sorun kod kaynaklı mı acaba?
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
917
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
  • Donanım Yetersizliği: Diğer odadaki bilgisayarda hızlı çalışması ve seninkinde yavaşlaması, işlemci gücü, RAM veya disk hızının etkili olduğunu gösteriyor. Özellikle makro, çok sayıda dosya oluşturup işliyorsa, bu fark ciddi olur.
  • Ağ Gecikmesi veya Paylaşımlı Klasör Problemleri: Klasörde “dosya oluşup kayboluyor” ifadesi, ağ üzerinden dosya erişiminde gecikmeler veya tutarsızlıklar olabileceğini düşündürüyor. Her ne kadar aynı ağda olsanız da yönlendirme, yük veya bağlantı farklılıkları oluşabilir.
  • Makro Kodlarında Hata veya Uyumsuzluk: “Automation error: çağrılan nesne istemciden ayrılmış” hatası genelde Excel’in bir COM nesnesiyle olan bağlantısının bozulmasıyla ilgili. Bu da işlem sırasında bağlantının kesildiğini gösterir. Muhtemel nedenler:
    • Arkaplanda çalışan başka yazılımlar
    • Office güncellemesi sonrası uyumsuzluk
    • Makronun çok işlem yapıp belleği zorlaması
  • Antivirüs ya da Güvenlik Yazılımları: Dosya işlemlerini engelliyor olabilir veya sistem kaynaklarını fazla tüketiyor olabilir.
Neler Yapılabilir?
  • Donanımsal olarak RAM ve işlemci kullanımı izlenebilir. Görev Yöneticisi üzerinden dönüşüm sırasında sistemin ne kadar zorlandığını görmek çok faydalı olur.
  • Makroyu daha güçlü bilgisayarda çalıştırmak bir çözüm olabilir ama asıl amaç diğer cihazda da bunu düzeltmekse:
    • Dosyaların oluşturulacağı klasörü yerel bir disk konumuna almak
    • Ağdan bağımsız test yapmak
    • Makroyu tek seferde değil, adım adım (örneğin 10 il, sonra 10 il) çalıştırmak
  • Eğer mümkünse makroyu elden geçirmek ve nesne bağlantılarının yönetimini daha sağlam yapmak (örneğin Set komutlarıyla nesneleri açıkça tanımlamak, işlem sonunda Nothing ile temizlemek)
    Bu tür hatalar bazen yalnızca Office’in versiyonuyla bile ortaya çıkabiliyor. İki bilgisayarda Office sürümleri aynı mı?Kontrol etmek lazım.
 
Katılım
31 Ağustos 2023
Mesajlar
19
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Office sürümleri aynı hocam ama diğer bilgisayar dediğim gibi donanım olarak benim bilgisayarımdan çok daha iyi. En sağlıklısı işlemlerimi o bilgisayardan yapmak olacak gibi. Teşekkür ediyorum ilginiz için.
 
Üst