İlginizi Çekebilir
  1. Ana Sayfa
  2. Excel
  3. Makro (Vba) ile Excel Çalışma Sayfasını Pdf Olarak Kaydetme

Makro (Vba) ile Excel Çalışma Sayfasını Pdf Olarak Kaydetme

featured

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

Yorum Yap
Subscribe
Bildir
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

8 Yorum
Inline Feedbacks
View all comments
özge

$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?

serkan

mrb lar
istediğim sayfaları tek pdf de sayf sayfa kaydetmesi nasıl

İsmail

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?

ahmet

bu şekilde denediğimde olmuyor pdf ismi ”+degisken+” bu şekilde kaydediyor.

Bilişim Öğretmeni

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 »

Polat

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