Bu dersimizde Makro (Vba) ile Excel Çalışma Sayfasını Pdf Olarak Kaydetme işlemi nasıl yapılır anlatmaya çalışacağım. Bazı durumlarda oluşturduğunuz excel çalışma kitabının tümünü, çalıştığınız bir sayfayı yada seçmiş olduğunuz hücre aralıklarını pdf formatında kaydetmek isteyebilirsiniz bu işlem için kullanabileceğiniz kodlar..:
1-Aktif Olan Çalışma Sayfasını Pdf Olarak Kaydetme
C:\Users\Vento\File_Name.pdf bizim dosyamızı kaydedeceğimiz yol bunu kendinize göre düzenleyebilirsiniz.
With ActiveSheet .ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="C:\Users\Vento\File_Name.pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End With
2-Seçeceğiniz Excel Çalışma Sayfasını Pdf Olarak Kaydetme
Sheets(“Sayfa2”) kısmına pdf olarak kaydedilecek excel sayfasının ismini yazıyoruz ve yine C:\Users\Vento\File_Name.pdf bizim dosyamızı kaydedeceğimiz yol bunu kendinize göre düzenleyebilirsiniz.
With Sheets("Sayfa2") .ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="C:\Users\Vento\File_Name11.pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End With
3-Seçilen Hücre Aralığını Pdf Olarak Kaydetme
Sheets(“Sayfa1”).Range(“A1:B22”) bölümünde sayfa ismi ve pdf olarak kaydedilecek hücre aralığını seçiyoruz..
With Sheets("Sayfa1").Range("A1:B22") .ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:="C:\Users\Vento\File_Name22.pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False ' End With
Merhabalar,
toplamda 6 sayfadan olusan bir Excel dosyam var ve ben istiyorum ki;
bu alti sayfanin icinde benim belirledigim hücrelerde herhangi bir icerik varsa, makro sadece bu iceriklerin oldugu sayfalari PDF olarak kaydetsin.
Bunun icin bir önerisi olan var mi?
Simdiden tesekkürler…
Döngü ile verileri ayrı ayrı değil de tek bir pdf dosyası oluşturmak mümkün mü?
$path = “C:\Users\SAMSUNG\Desktop\-”
$xlFixedFormat = “Microsoft.Office.Interop.Excel.xlFixedFormatType” -as [type]
$excelFiles = Get-ChildItem -Path $path -include *.xls, *.xlsx -recurse
$objExcel = New-Object -ComObject excel.application
$objExcel.visible = $false
foreach($wb in $excelFiles)
{
$filepath = Join-Path -Path $path -ChildPath ($wb.BaseName + “.pdf”)
$workbook = $objExcel.workbooks.open($wb.fullname, 1)
$workbook.ActiveSheet.PageSetup.Orientation = 1
$objExcel.PrintCommunication = $false
$workbook.ActiveSheet.PageSetup.FitToPagesTall = $false
$workbook.ActiveSheet.PageSetup.FitToPagesWide = $false
$objExcel.PrintCommunication = $true
$workbook.Saved = $true
“saving $filepath”
$workbook.WorkSheets.Item(1).ExportAsFixedFormat($xlFixedFormat::xlTypePDF, $filepath)
$objExcel.Workbooks.close()
}
$objExcel.Quit()
Excel dosyalarımı toplu olarak pdf’ye çevirmek için bu koda sahibim ama tüm çalışma alanımı dönüştürüyor sadece seçili yazdırma alanını dönüştürmek istiyorum yardımcı olur musunuz?
Yukarıda yer alan 3-Seçilen Hücre Aralığını Pdf Olarak Kaydetme bu başlık altındaki kodları denediniz mi
mrb lar
istediğim sayfaları tek pdf de sayf sayfa kaydetmesi nasıl
Filename:=”C:\Users\Vento\File_Name11.pdf”
Olarak yazılan bölümde dosya çıktı adını
Örneğin: Sayfa1 A1 hücre değeri olarak
Filename:=”C:\Users\Vento\Sayfa1!A1.pdf”
olarak yazabilirmiyiz?
ilgili hücrenin değerini bir değişkene alarak Filename:=”C:\Users\Vento\”+degisken+”.pdf” şeklinde olabilir ama denemedim
bu şekilde denediğimde olmuyor pdf ismi ”+degisken+” bu şekilde kaydediyor.
Sub PdfKaydet() Dim wsA As Worksheet Dim wbA As Workbook Dim strTime As String Dim strName As String Dim strPath As String Dim strFile As String Dim strPathFile As String Dim myFile As Variant On Error GoTo errHandler Set wbA = ActiveWorkbook Set wsA = ActiveSheet strTime = Format(Now(), "yyyymmdd\_hhmm") strPath = wbA.Path If strPath = "" Then strPath = Application.DefaultFilePath End If strPath = strPath & "\" strName = Replace(wsA.Name, " ", "") strName = Replace(strName, ".", "_") strFile = strName & "_" & strTime & ".pdf" strPathFile = strPath & strFile myFile = Application.GetSaveAsFilename _ … Read more »
Hocam selamlar, bu pdf e çevirme işlemini dinamik olarak sayfanın değişeceği şekilde yazabiliyor muyuz?
Kullandığım kod ile dinamik yazdırma işlemi yapıyorum, ancak yazdırma değil de bazen dinamik olarak pdf kaydetmek istiyorum.
Kullandığım kod;
Sub Yazdır()
Dim syfVeriler As Worksheet
Dim syfSayfa2 As Worksheet
Dim bak As Integer
Set syfVeriler = Worksheets(“VERİLER”)
Set syfSayfa2 = Worksheets(“Sayfa2”)
For bak = syfSayfa2.Range(“A1”).Value To syfSayfa2.Range(“A10”).Value
syfSayfa2.Range(“A1”).Value = bak
syfSayfa2.PrintOut Copies:=1, Collate:=True
Next
End Sub