- Katılım
- 10 Ocak 2018
- Mesajlar
- 745
- Excel Vers. ve Dili
-
Microsoft Office 2024
Google Sheets
- Altın Üyelik Bitiş Tarihi
- 19-12-2026
Merhaba
Excel'de makro ile listeyi hazırlayıp aşağıdaki kod ile aynı klasöre kaydediyorum.
2 problem var çözemediğim.
1. problem : Tüm verilere ait doldurma işlemini yapıyor. Son veriden sonra boş olarak sayfalar oluşturuyor.
2. problem : Çıktıyı PDF olarak kaydedemedim. Word çalışıyor. PDF Kodlarını denedim dosya bozuk hatası veriyor.
Yardımcı olabilirseniz sevinirim. İyi çalışmalar.
Excel'de makro ile listeyi hazırlayıp aşağıdaki kod ile aynı klasöre kaydediyorum.
2 problem var çözemediğim.
1. problem : Tüm verilere ait doldurma işlemini yapıyor. Son veriden sonra boş olarak sayfalar oluşturuyor.
2. problem : Çıktıyı PDF olarak kaydedemedim. Word çalışıyor. PDF Kodlarını denedim dosya bozuk hatası veriyor.
Yardımcı olabilirseniz sevinirim. İyi çalışmalar.
C++:
Sub VBAMailMerge()
Dim wdDoc As Object
Dim wdApp As Object
Dim strExcelPath As String
Dim strWordTemplate As String
Dim strSavePath As String
strExcelPath = ThisWorkbook.Path & "\etiketRA.xlsm"
strWordTemplate = ThisWorkbook.Path & "\etiketRA.docx"
strSavePath = ThisWorkbook.Path & "\Etiket "
Set wdApp = CreateObject("Word.Application")
If wdApp Is Nothing Then
Set wdApp = CreateObject("Word.Application")
End If
For Each wdDoc In wdApp.Documents
wdDoc.Close SaveChanges:=True
Next
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Open(strWordTemplate)
wdDoc.Save
wdDoc.MailMerge.MainDocumentType = wdFormLetters
wdDoc.MailMerge.OpenDataSource _
Name:=strExcelPath, _
LinkToSource:=True, _
ReadOnly:=False, _
AddToRecentFiles:=False, _
PasswordDocument:="", _
PasswordTemplate:="", _
Revert:=False, _
WritePasswordDocument:="", _
WritePasswordTemplate:="", _
Connection:="", _
SQLStatement:="SELECT * FROM `Etiket$`"
wdDoc.MailMerge.Destination = wdSendToNewDocument
wdDoc.MailMerge.SuppressBlankLines = True
With wdDoc.MailMerge
.Execute
.Destination = wdSendToPrinter
.SuppressBlankLines = True
End With
Dim newDoc As Object
Set newDoc = wdApp.ActiveDocument
newDoc.SaveAs2 Filename:=strSavePath & Date & ".docx" _
, FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", _
AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
:=False, SaveAsAOCELetter:=False, CompatibilityMode:=15
newDoc.Close SaveChanges:=True
For Each wdDoc In wdApp.Documents
wdDoc.Close SaveChanges:=True
Next
wdApp.Quit
End Sub
Ekli dosyalar
-
14.7 KB Görüntüleme: 5
-
27.2 KB Görüntüleme: 3