Elinizde yüzlerce/binlerce kayıt varsa (ör. her personel için ayrı bir maaş bordrosu), bunları tek tek PDF'e çevirmek yerine VBA ile saniyeler içinde toplu üretebilirsiniz.
1. Adım: Bir Şablon Sayfası Hazırlamak
Ayrı bir sayfada, DÜŞEYARA gibi formüllerle bir kayıt sayfasından bilgileri çeken bir belge şablonu tasarlayın (isim, şehir, maaş vb. otomatik gelsin).
2. Adım: Yazdırma Alanını Belirlemek
Worksheets("Belge").PageSetup.PrintArea = "A1:F20"
3. Adım: PDF'e Aktarmak
Worksheets("Belge").ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="C:\Hedefler\" & isim & " " & soyisim & ".pdf"
ExportAsFixedFormat, o sayfanın yazdırma alanını doğrudan PDF olarak kaydeder — Filename parametresinde değişkenleri birleştirerek her kayıt için farklı bir dosya adı üretebilirsiniz.
4. Adım: Klasör Yoksa Oluşturmak
Hedef klasör önceden yoksa ExportAsFixedFormat hata verir. Klasörü kod ile oluşturmak için:
If Dir("C:\Hedefler", vbDirectory) = "" Then
MkDir "C:\Hedefler"
End If
5. Adım: Tüm Kayıtlar İçin Döngü Kurmak
Dim sonSatir As Long, i As Long
Dim isim As String, soyisim As String
sonSatir = Worksheets("Database").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To sonSatir
isim = Worksheets("Database").Range("B" & i).Value
soyisim = Worksheets("Database").Range("C" & i).Value
Worksheets("Belge").Range("C4").Value = isim
Worksheets("Belge").Range("C5").Value = soyisim
Worksheets("Belge").ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:="C:\Hedefler\" & isim & " " & soyisim & ".pdf"
Next i
Bu döngü, veri tablosundaki her satır için şablonu güncelleyip ayrı bir PDF olarak kaydeder — sonuçta bir düğmeye tıklamanız yeterli, yüzlerce kişisel belge saniyeler içinde hazır olur.
Sırada Ne Var?
Sırada, üretilen bu belgeleri Outlook üzerinden toplu e-posta olarak göndermeyi göreceğiz.