VBA Save PDF Secara berulang

  1. 4 tahun lalu

    mohon bantuannya, saya mau menyimpan file laporan siswa ke dalam bentu PDF
    sebelumnya sudah menemukan rumus VBA untuk tombol save PDF, tapi filenya sangat banyak jika harus disimpan secara satu persatu jadi saya coba untuk mencari fomula lain yang bisa menyimpan dengan range yang diinginkan
    yang saya temukan hanya formula VBA print secara berulang, nah saya coba untuk gabungkan 2 formula tersebut (save pdf & print berulang) namun karena ilmu saya cetek jadi tdk berhasil hehe

    barangkali ada pencerahan

    (FORMULA PERTAMA UNTUK SAVE PDF)
    Option Explicit
    Sub SavePDF()
    'Khusus excel 2010 ke atas yang sudah support Save as PDF

    Dim wsA As Worksheet
    Dim wbA As Workbook
    Dim strName As String
    Dim strPath As String
    Dim strFile As String
    Dim strPathFile As String
    Dim myFile As Variant
    Dim lOver As Long
    On Error GoTo errHandler

    Set wbA = ActiveWorkbook
    Set wsA = ActiveSheet

    'folder penyimpanan
    strPath = wbA.Path
    If strPath = "" Then
    strPath = Application.DefaultFilePath
    End If
    strPath = strPath & "\"

    'nama file
    strName = wsA.Range("v224").Value _
    & " " & wsA.Range("w225").Value _
    & " " & wsA.Range("w226").Value
    strFile = strName & ".pdf"
    strPathFile = strPath & strFile

    'Jika nama file ada yang sama
    If bFileExists(strPathFile) Then
    lOver = MsgBox("Overwrite existing file?", _
    vbQuestion + vbYesNo, "File Exists")
    If lOver <> vbYes Then
    myFile = Application.GetSaveAsFilename _
    (InitialFileName:=strPathFile, _
    FileFilter:="PDF Files (*.pdf), *.pdf", _
    Title:="Select Folder and FileName to save")
    If myFile <> "False" Then
    strPathFile = myFile
    Else
    GoTo exitHandler
    End If
    End If
    End If

    'Save PDF di folder yang sama
    wsA.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=strPathFile, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

    exitHandler:
    Exit Sub

    errHandler:
    MsgBox "Tidak bisa menyimpan file PDF"
    Resume exitHandler
    End Sub
    '=============================
    Function bFileExists(rsFullPath As String) As Boolean
    bFileExists = CBool(Len(Dir$(rsFullPath)) > 0)
    End Function
    '=============================

    (FORMULA KEDUA UNTUK PRINT BERULANG)
    Sub CetakBerulang()
    Application.Dialogs(xlDialogPrinterSetup).Show
    With Sheet2
    For i = .[A6] To .[D6]
    .[A2] = "" & WorksheetFunction.Rept(0, 5 - Len(i)) & i
    .PrintOut
    Next
    End With
    End Sub

    SAYA LAMPIRKAN CONTOH FILE PRINT BERULANG YANG INGIN SAYA UBAH MENJADI SAVE BERULANG

  2. @Try Sutrisno

    yang perlu anda lakukan hanya memanggil sub SavePDF dari sub CetakBerulang. Terlampir contohnya silahkan di pelajari

    Note : karena gak ada contoh datanya jadi saya buat data acak aja :)

  3. @manweljs_

    Wah simpel sekali yah????, Alhamdulillah terimakasih pencerahannya ????????

  4. tahun lalu
    Di sunting tahun lalu oleh bagusejogja

    salam,
    saya menggunakan office 365 tetapi kok blm sukes ya, muncul notifikasi "Khusus excel 2010 ke atas yang sudah support Save as PDF". scrip "folder penyimpanan" saya ubah "strPath = "C:\"" asal strPath = strPath & "\"

  5. Caton

    18 Jul 2023 Terverifikasi Indonesia + 20.102 Poin

    @bagusejogja ...

    Coba ganti data variabel strPath dengan drive atau folder lain, misalkan :

    strPath = "c:\Users\ASUS\Documents\"

    atau

    strPath = "D:\DATA\"

    dan sebagainya. Jangan gunakan folder C:\...

    Demikian.

 

atau Mendaftar untuk ikut berdiskusi!