- 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
İyi çalışmalar.
Alttaki kod ile Word postalarda excelden aldığım verileri ayrı ayrı *.docx dosyası olarak kaydedebiliyorum.
Bu konuda 2 adet problemim var.
1. Olarak:
Burada yapmak istediğim alttaki kod ile kaydedilecek yeri ve işlemi baz alacağı excel yolunun girilmesi lazım.
Ama şöyle bir durum var. Her defasında bu makroyu açıp kodu değiştirmek kullanacak olan arkadaşlarımız için problem olmakta.
Bunu mesela masaüstünde bulunan X klasörü içinde yaptığımızı varsayalım.
2. eklediğim şekilde hangi kodu kullanmamız gerekir?
Genel bir kod olup excel dosyası hangi klasördeyse ordan baz alarak çalışmasını istiyorum.
2. Olarak
Alttaki kod postalarda oluşan sayfaları ayrı ayrı olarak excel de bulunan "KDN" sütunundaki veriye göre kaydetmektedir.
Buradaki KDN (Yani A) sütunu yerine AD_SOYAD (Yani G) sütununu yazarsam oradan veri çekip kaydetmektedir.
2 sütunu birleştirip dosya adı olarak beraber yazdırmak için nasıl yazılması gereklidir.
Üstteki kod ile > 1.docx
Üstteki kod ile > RBozkurt.docx
oluşmaktadır.
Yapılması istenilen 1 - RBozkurt.docx olarak kaydedilmesi. (Yani A ve G sütunundaki verileri birlikte.)
***
Kullanacak olan arkadaşlar için
Alttaki kod ile Word postalarda excelden aldığım verileri ayrı ayrı *.docx dosyası olarak kaydedebiliyorum.
Bu konuda 2 adet problemim var.
1. Olarak:
Burada yapmak istediğim alttaki kod ile kaydedilecek yeri ve işlemi baz alacağı excel yolunun girilmesi lazım.
Ama şöyle bir durum var. Her defasında bu makroyu açıp kodu değiştirmek kullanacak olan arkadaşlarımız için problem olmakta.
Bunu mesela masaüstünde bulunan X klasörü içinde yaptığımızı varsayalım.
2. eklediğim şekilde hangi kodu kullanmamız gerekir?
Genel bir kod olup excel dosyası hangi klasördeyse ordan baz alarak çalışmasını istiyorum.
Kod:
Const FOLDER_SAVED As String = "C:\Ra\Sonuc\"
Const SOURCE_FILE_PATH As String = "C:\Ra\Ra.xlsx"
Kod:
Const FOLDER_SAVED As String = "*bulunduğu klasör*\Sonuc\"
Const SOURCE_FILE_PATH As String = "*bulunduğu klasör*\Ra.xlsx"
2. Olarak
Alttaki kod postalarda oluşan sayfaları ayrı ayrı olarak excel de bulunan "KDN" sütunundaki veriye göre kaydetmektedir.
Buradaki KDN (Yani A) sütunu yerine AD_SOYAD (Yani G) sütununu yazarsam oradan veri çekip kaydetmektedir.
2 sütunu birleştirip dosya adı olarak beraber yazdırmak için nasıl yazılması gereklidir.
Kod:
TargetDoc.SaveAs FOLDER_SAVED & .DataSource.DataFields("KDN").Value & ".docx", wdFormatDocumentDefault
Kod:
TargetDoc.SaveAs FOLDER_SAVED & .DataSource.DataFields("AD_SOYAD").Value & ".docx", wdFormatDocumentDefault
oluşmaktadır.
Yapılması istenilen 1 - RBozkurt.docx olarak kaydedilmesi. (Yani A ve G sütunundaki verileri birlikte.)
***
Kullanacak olan arkadaşlar için
Kod:
https://learndataanalysis.org/automate-mail-merge-to-save-each-record-individually-with-word-vba/
Kod:
Option Explicit
Const FOLDER_SAVED As String = "C:\Ra\Sonuc\"
Const SOURCE_FILE_PATH As String = "C:\Ra\Ra.xlsx"
Sub TestRun()
Dim MainDoc As Document, TargetDoc As Document
Dim dbPath As String
Dim recordNumber As Long, totalRecord As Long
Set MainDoc = ActiveDocument
With MainDoc.MailMerge
'// if you want to specify your data, insert a WHERE clause in the SQL statement
.OpenDataSource Name:=SOURCE_FILE_PATH, sqlstatement:="SELECT * FROM [Ra$]"
totalRecord = .DataSource.RecordCount
For recordNumber = 1 To totalRecord
With .DataSource
.ActiveRecord = recordNumber
.FirstRecord = recordNumber
.LastRecord = recordNumber
End With
.Destination = wdSendToNewDocument
.Execute False
Set TargetDoc = ActiveDocument
TargetDoc.SaveAs FOLDER_SAVED & .DataSource.DataFields("KDN").Value & ".docx", wdFormatDocumentDefault
TargetDoc.Close False
Set TargetDoc = Nothing
Next recordNumber
End With
Set MainDoc = Nothing
End Sub