Word posta gönderilerini makro ile pdf olarak kaydetme

Katılım
24 Ocak 2024
Mesajlar
5
Excel Vers. ve Dili
Profesional Plus 2021 Türkçe
Merhaba Worde bir sertifika hazırladım kişi bilgilerini ve tarih bilgilerini excelde bir tablo yaparak wordde hazırladığım sertifikanın ilgili yerlerine çektim ama ama bitir ve birleştir dediğimde tek bir word dosyası olarak kaydediyor. ben her kişinin adıyla tek tek pdf dosyası olarak kaydetmesini istiyorum bunu makro ile nasıl yaparım.
 
Katılım
20 Şubat 2007
Mesajlar
659
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba,
Kod içindeki ("Borçlu") kelimesi yerine sizin exceldeki "kişi adı alanı" neyse o yazılacak.

Kod:
Sub MailMergeToPdfBasic()
    Dim masterDoc As Document, singleDoc As Document, lastRecordNum As Long
   
    Set masterDoc = ActiveDocument
    PdfFolderPath = masterDoc.Path
    masterDoc.MailMerge.DataSource.ActiveRecord = wdLastRecord
    lastRecordNum = masterDoc.MailMerge.DataSource.ActiveRecord
    masterDoc.MailMerge.DataSource.ActiveRecord = wdFirstRecord
   
    Do While lastRecordNum > 0
        masterDoc.MailMerge.Destination = wdSendToNewDocument
        masterDoc.MailMerge.DataSource.FirstRecord = masterDoc.MailMerge.DataSource.ActiveRecord
        masterDoc.MailMerge.DataSource.LastRecord = masterDoc.MailMerge.DataSource.ActiveRecord
        masterDoc.MailMerge.Execute False
        Set singleDoc = ActiveDocument
Rem buradaki ("Borçlu") kelimesi yerine sizin exceldeki "kişi adı alanı" neyse o yazılacak.
        singleDoc.ExportAsFixedFormat _
            OutputFileName:=PdfFolderPath & Application.PathSeparator & _
                masterDoc.MailMerge.DataSource.DataFields("Borçlu").Value & ".pdf", _
            ExportFormat:=wdExportFormatPDF
        singleDoc.Close False
        If masterDoc.MailMerge.DataSource.ActiveRecord >= lastRecordNum Then
            lastRecordNum = 0
        Else
            masterDoc.MailMerge.DataSource.ActiveRecord = wdNextRecord
        End If
    Loop
MsgBox "Pdf dosyaları oluşturuldu", vbInformation
End Sub
 
Son düzenleme:
Katılım
24 Ocak 2024
Mesajlar
5
Excel Vers. ve Dili
Profesional Plus 2021 Türkçe
Merhaba,
Kod içindeki ("Borçlu") kelimesi yerine sizin exceldeki "kişi adı alanı" neyse o yazılacak.

Kod:
Sub MailMergeToPdfBasic()
    Dim masterDoc As Document, singleDoc As Document, lastRecordNum As Long
  
    Set masterDoc = ActiveDocument
    PdfFolderPath = masterDoc.Path
    masterDoc.MailMerge.DataSource.ActiveRecord = wdLastRecord
    lastRecordNum = masterDoc.MailMerge.DataSource.ActiveRecord
    masterDoc.MailMerge.DataSource.ActiveRecord = wdFirstRecord
  
    Do While lastRecordNum > 0
        masterDoc.MailMerge.Destination = wdSendToNewDocument
        masterDoc.MailMerge.DataSource.FirstRecord = masterDoc.MailMerge.DataSource.ActiveRecord
        masterDoc.MailMerge.DataSource.LastRecord = masterDoc.MailMerge.DataSource.ActiveRecord
        masterDoc.MailMerge.Execute False
        Set singleDoc = ActiveDocument
Rem buradaki ("Borçlu") kelimesi yerine sizin exceldeki "kişi adı alanı" neyse o yazılacak.
        singleDoc.ExportAsFixedFormat _
            OutputFileName:=PdfFolderPath & Application.PathSeparator & _
                masterDoc.MailMerge.DataSource.DataFields("Borçlu").Value & ".pdf", _
            ExportFormat:=wdExportFormatPDF
        singleDoc.Close False
        If masterDoc.MailMerge.DataSource.ActiveRecord >= lastRecordNum Then
            lastRecordNum = 0
        Else
            masterDoc.MailMerge.DataSource.ActiveRecord = wdNextRecord
        End If
    Loop
MsgBox "Pdf dosyaları oluşturuldu", vbInformation
End Sub
Öncelikle ilgilendiğiniz için teşekkür ederim. Ben bunu yaptım ama olmadı. Ben beceremedim büyük bir ihtimal, dosyaları ekledim üzerinde uygulayabilir misiniz?
Dosyalar
 
Katılım
20 Şubat 2007
Mesajlar
659
Excel Vers. ve Dili
2007 Excel, Word Tr
Dosyanıza makroyu ekledim. Docm uzantılı olarak kaydedip harici siteye yükledim. Linki aşağıda.
Dosyayı açınca Alt+F8 yapıp açılan pencereden "MailMergeToPdfBasic" adlı makroyu çalıştıracaksınız.
Dosyalar ve makrosu
 
Katılım
24 Ocak 2024
Mesajlar
5
Excel Vers. ve Dili
Profesional Plus 2021 Türkçe
Dosyanıza makroyu ekledim. Docm uzantılı olarak kaydedip harici siteye yükledim. Linki aşağıda.
Dosyayı açınca Alt+F8 yapıp açılan pencereden "MailMergeToPdfBasic" adlı makroyu çalıştıracaksınız.
Dosyalar ve makrosu
Merhaba dosyayı indirdim posta gönderi kısmından ilgili excel dosyasını seçtikten sonra Alt+F8 yapıp açılan pencereden "MailMergeToPdfBasic" adlı makroyu çalıştırdım fakat hiçbir şey olmuyor herhangi bir hatada vermiyor.
 
Katılım
20 Şubat 2007
Mesajlar
659
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba dosyayı indirdim posta gönderi kısmından ilgili excel dosyasını seçtikten sonra Alt+F8 yapıp açılan pencereden "MailMergeToPdfBasic" adlı makroyu çalıştırdım fakat hiçbir şey olmuyor herhangi bir hatada vermiyor.
Makronun "MailMergeToPdfBasic" olan ismini "Word_Pdf" olarak değiştirip tekrar çalıştırmayı dener misiniz.
 
Katılım
24 Ocak 2024
Mesajlar
5
Excel Vers. ve Dili
Profesional Plus 2021 Türkçe
Makronun "MailMergeToPdfBasic" olan ismini "Word_Pdf" olarak değiştirip tekrar çalıştırmayı dener misiniz.
Düzenle dediğimde "Name conflicts with existing module, project, or object library" diye bir hata veriyor. Düzenleyemiyorum.
 
Katılım
20 Şubat 2007
Mesajlar
659
Excel Vers. ve Dili
2007 Excel, Word Tr
Alt+F11 yapın. Direkt makro üzerine gelirsiniz. Oradan hata almadan değiştirebilirsiniz.
 
Katılım
20 Şubat 2007
Mesajlar
659
Excel Vers. ve Dili
2007 Excel, Word Tr
Amin, iyi dilekleriniz karşılıklı.
 
Üst