1. Anasayfa
  2. Excel

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

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

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

Bu İçeriğe Tepkin Ne Oldu?
  • 18
    ba_ar_l_
    Başarılı
  • 0
    gayet_yi
    Gayet İyi
  • 5
    te_ekk_rler
    Teşekkürler
  • 0
    anlamad_m
    Anlamadım
  • 0
    yetersiz
    Yetersiz
İlginizi Çekebilir
Subscribe
Bildir
guest

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

10 Yorum
Inline Feedbacks
View all comments
Ahmet

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…

Mehmet Kısa

Döngü ile verileri ayrı ayrı değil de tek bir pdf dosyası oluşturmak mümkün mü?

ö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