Değerli hocalarım öncelikle herkese kolay gelsin;
Aşağıdaki makroyu çalıştırdığımda listedeki herkes için ayrı ayrı form oluşturuyor ve bunları masaüstüne açtığı bir klasöre kaydediyor. benim istediğim ise tüm formları peşpeşe sayfalar halinde tek pdf olarak dökmesi.
nerede hata yapıyorum, bakma imkanınız var mı?
şimdiden teşekkürler
"
Sub SicilNumaralariniAktar_ve_PDFKaydet()
Dim wsListe As Worksheet
Dim wsForm As Worksheet
Dim LastRow As Long
Dim i As Long
Dim SicilNo As String
Dim PDFFileName As String
Dim DesktopPath As String
Dim FolderPath As String
' Liste sayfasını ve forma sayfasını belirle
Set wsListe = Sheets("Liste") ' "Liste" kısmını kendi liste sayfanızın adıyla değiştirin
Set wsForm = Sheets("Form") ' "Form" kısmını kendi form sayfanızın adıyla değiştirin
' Masaüstü yolu
DesktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
' Klasör adı
FolderPath = DesktopPath & "\Performans Notları\"
' Klasörü oluştur
MkDir FolderPath
' Liste sayfasındaki son satırı bul
LastRow = wsListe.Cells(wsListe.Rows.Count, "B").End(xlUp).Row
' Sicil numaralarını forma aktar ve PDF olarak kaydet
For i = 3 To LastRow ' Sicil numaraları B3:B999 arasında olduğunu varsayıyoruz
' Sicil numarasını al
SicilNo = wsListe.Cells(i, 2).Value ' "B" sütununu kendi sicil numarası sütununuzla değiştirin
' Sicil numarasını forma aktar
wsForm.Range("W2").Value = SicilNo ' Formunuzun yapısına göre hücreyi değiştirin
' PDF olarak kaydet
PDFFileName = FolderPath & SicilNo & ".pdf" ' Klasör yolu ve dosya adını değiştirin
wsForm.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFFileName
' Formu temizle (sonraki sicil numarası için)
wsForm.Range("W2").ClearContents
Next i
' İşlem tamamlandığında uyarı göster
MsgBox "PDF Dökümü Tamamlandı.", vbInformation
' Form sayfasındaki V1 hücresine Liste sayfasındaki B3 değerini tekrar getir
wsForm.Range("W2").Value = wsListe.Range("B3").Value
End Sub
"
Aşağıdaki makroyu çalıştırdığımda listedeki herkes için ayrı ayrı form oluşturuyor ve bunları masaüstüne açtığı bir klasöre kaydediyor. benim istediğim ise tüm formları peşpeşe sayfalar halinde tek pdf olarak dökmesi.
nerede hata yapıyorum, bakma imkanınız var mı?
şimdiden teşekkürler
"
Sub SicilNumaralariniAktar_ve_PDFKaydet()
Dim wsListe As Worksheet
Dim wsForm As Worksheet
Dim LastRow As Long
Dim i As Long
Dim SicilNo As String
Dim PDFFileName As String
Dim DesktopPath As String
Dim FolderPath As String
' Liste sayfasını ve forma sayfasını belirle
Set wsListe = Sheets("Liste") ' "Liste" kısmını kendi liste sayfanızın adıyla değiştirin
Set wsForm = Sheets("Form") ' "Form" kısmını kendi form sayfanızın adıyla değiştirin
' Masaüstü yolu
DesktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
' Klasör adı
FolderPath = DesktopPath & "\Performans Notları\"
' Klasörü oluştur
MkDir FolderPath
' Liste sayfasındaki son satırı bul
LastRow = wsListe.Cells(wsListe.Rows.Count, "B").End(xlUp).Row
' Sicil numaralarını forma aktar ve PDF olarak kaydet
For i = 3 To LastRow ' Sicil numaraları B3:B999 arasında olduğunu varsayıyoruz
' Sicil numarasını al
SicilNo = wsListe.Cells(i, 2).Value ' "B" sütununu kendi sicil numarası sütununuzla değiştirin
' Sicil numarasını forma aktar
wsForm.Range("W2").Value = SicilNo ' Formunuzun yapısına göre hücreyi değiştirin
' PDF olarak kaydet
PDFFileName = FolderPath & SicilNo & ".pdf" ' Klasör yolu ve dosya adını değiştirin
wsForm.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFFileName
' Formu temizle (sonraki sicil numarası için)
wsForm.Range("W2").ClearContents
Next i
' İşlem tamamlandığında uyarı göster
MsgBox "PDF Dökümü Tamamlandı.", vbInformation
' Form sayfasındaki V1 hücresine Liste sayfasındaki B3 değerini tekrar getir
wsForm.Range("W2").Value = wsListe.Range("B3").Value
End Sub
"