Save as PDF

  1. 2 tahun lalu

    suhu sekalian, saya memiliki keinginan untuk membuat macro tombol save as pdf dengan syarat berikut
    1.file selalu bisa di save ke folder yang diinginkan
    2.file bisa langsung diberi nama saat melakukan save as

    untuk save to pdfnya sudah bisa dengan menggunakan

    Sub tes()

    Selection.ExportAsFixedFormat Type:=x1typepdf, openafterpublish:=True

    End Sub

    saya bingung untuk syarat yang saya mau itu harus pake script seperti apa

  2. Caton

    24 Nov 2021 Terverifikasi Indonesia + 20.101 Poin

    @raibarong...

    Pertama, gunakan fungsi Application.GetSaveAsFilename untuk menentukan lokasi dan nama filenya. Jika nama telah ditentukan, baru simpan dokumen PDF tersebut. Contoh:

    Sub Test
    Dim vFN As Variant
    
    vFN = Application.GetSaveAsFilename( _
    FileFilter:= "Portable Document (*.pdf), *.pdf", _
    Title:="Simpan dokumen sebagai...", _
    InitialFileName:=Thisworkbook.Path & "\namadokumen.pdf")
    
    If vFN <> False Then
       Selection.ExportAsFixedFormat _
          Type:=xlTypePDF, _
          FileName:=vFN, _
          OpenAfterPublish:=True
    End If
    
    End Sub

    Demikian.

  3. @Caton @raibarong...

    Sub Test
    Dim vFN As Variant
    
    vFN = Application.GetSaveAsFilename( _
    FileFilter:= "Portable Document (*.pdf), *.pdf", _
    Title:="Simpan dokumen sebagai...", _
    InitialFileName:=Thisworkbook.Path & "\namadokumen.pdf")
    
    If vFN <> False Then
       Selection.ExportAsFixedFormat _
          Type:=xlTypePDF, _
          FileName:=vFN, _
          OpenAfterPublish:=True
    End If
    
    End Sub

    Demikian.

    berjalan dengan sempurna, dan kalo mau saveas ke format lain tinggal ganti formatnya.. makasih master @Caton

  4. script di bawah ini tadinya berjalan dengan baik.. tapi sekarang jika di save maka hasilnya ada jarak atau space disetiap huruf pada pdf.. saya coba print to pdf dengan print biasa kemudian di print ke microsoft print to pdf baru bisa tidak ada jaraknya.. adakah cara supaya menghilangkan spasi tersebut? atau macro memilih langsung print ke microsoft to pdf ?

    @Caton @raibarong...

    Pertama, gunakan fungsi Application.GetSaveAsFilename untuk menentukan lokasi dan nama filenya. Jika nama telah ditentukan, baru simpan dokumen PDF tersebut. Contoh:

    Sub Test
    Dim vFN As Variant
    
    vFN = Application.GetSaveAsFilename( _
    FileFilter:= "Portable Document (*.pdf), *.pdf", _
    Title:="Simpan dokumen sebagai...", _
    InitialFileName:=Thisworkbook.Path & "\namadokumen.pdf")
    
    If vFN <> False Then
       Selection.ExportAsFixedFormat _
          Type:=xlTypePDF, _
          FileName:=vFN, _
          OpenAfterPublish:=True
    End If
    
    End Sub

    Demikian.

  5. Caton

    17 Sep 2022 Terverifikasi Indonesia + 20.101 Poin
    Di sunting 2 tahun lalu oleh Caton

    @raibarong ...

    Saya coba script tersebut dengan Excel 2010 (Windows 7 64bit), hasilnya normal tanpa masalah. Coba dulu di PC lain, apakah masih bermasalah?! Karena saya pake Windows 7, tidak ada fitur Microsoft to PDF Printer, jadi saya tidak bisa mencobanya. Jadi silahkan dicoba langkah berikut :

    — Seleksi area yang akan dicetak;
    — Print Preview area yang akan dicetak, pilih printer ke "Microsoft to PDF Printer";
    — Keluar dari Print Preview, buka VBE (Control F11);
    — Buka Immediate Window (Control G), lalu ketik :

    ?ActivePrinter

    lalu tekan Enter untuk menampilkan nama printer aktif berikut portnya; Contohnya :

    image_2022-09-17_182425672.png

    Salin nama dan port printernya. Lalu ubah script di atas menjadi :

    Sub TestPrint()
    Dim vFN As Variant
    
    '+-- Saya menggunakan printer PDF berbeda sebagai target
    '+-- printer aktif untuk membuat file PDF.
    Application.ActivePrinter = "PDF-XChange Standard on PXC"
    
    vFN = Application.GetSaveAsFilename( _
    FileFilter:="Portable Document (*.pdf), *.pdf", _
    Title:="Simpan dokumen sebagai...", _
    InitialFileName:=ThisWorkbook.Path & "\namadokumen.pdf")
    
    If vFN <> False Then
        Selection.PrintOut
    End If
    
    '+-- Jika ingin mengembalikan printer aktif ke printer lainnya,
    '+-- ubah kembali properti ActivePrinter di bawah ini ke nama dan
    '+-- port printer yang diinginkan!
    Application.ActivePrinter = "Bullzip PDF Printer on Ne03:"
    
    End Sub

    Demikian.

  6. mas @Caton script yang ini ga jalan mas

    vFN = Application.GetSaveAsFilename( _
    FileFilter:="Portable Document (*.pdf), *.pdf", _
    Title:="Simpan dokumen sebagai...", _
    InitialFileName:=ThisWorkbook.Path & "\namadokumen.pdf")

  7. Caton

    28 Sep 2022 Terverifikasi Indonesia + 20.101 Poin

    @raibarong ...

    Bisa lebih spesifik lagi informasinya mas? Mungkin dengan menampilkan screen shoot dari kesalahan yang muncul.

    Demikian.

 

atau Mendaftar untuk ikut berdiskusi!