Kode macro pdf

  1. 6 tahun lalu

    Permisi gan... mau tanya adakah kode macro atau vba untuk membuat tombol otomatis export ke pdf?

    Coba modifikasi script modul Sheet1 (FORM) menjadi:

    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count = 1 Then
            If Not Intersect(Target, [B9, B17, B19]) Is Nothing Then
                If Len(Target) Then
                    Dim xlCell As Range
                    
                    Application.EnableEvents = False
                    For Each xlCell In Sheet2.Range("B5:B15")
                        If InStr(1, Target, xlCell) Then
                            xlCell.Offset(ColumnOffset:=1).Value = "ADA"
                        End If
                    Next
                    Application.EnableEvents = True
                End If
            End If
        End If
    End Sub

    Untuk permulaan, range C5:C15 pada tabel data Sheet2 dibuat menjadi TIDAK ADA dahulu... Atau bisa juga dimodifikasi menjadi sebagai berikut:

    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count = 1 Then
            If Not Intersect(Target, [B9, B17, B19]) Is Nothing Then
                If Len(Target) Then
                    Dim xlCell As Range, xlTarget As Range
                    
                    Application.EnableEvents = False                
                    Sheet2.Range("B5:B15").Offset(ColumnOffset:=1).Value = "TIDAK ADA"
                    For Each xlCell In [B9, B17, B19]
                        For Each xlTarget In Sheet2.Range("B5:B15")
                            If InStr(1, xlCell, xlTarget) Then
                                xlTarget.Offset(ColumnOffset:=1).Value = "ADA"
                            End If
                        Next
                    Next
                    Application.EnableEvents = True
                End If
            End If
        End If
    End Sub

    Demikian... ;)

  2. Caton

    11 Des 2017 Terverifikasi Indonesia + 20.101 Poin

    Coba mas @Fredi modifikasi contoh baris kode VBA berikut:

    ...
    Sheet2.ExportAsFixedFormat Type:=xlTypePDF, Filename:="Contoh_Saja", _
         Quality:=xlQualityStandard, OpenAfterPublish:=False
    ...

    Parameter yang utama adalah Type:=xlTypePDF. Parameter lainnya dapat disesuaikan menurut kebutuhan. Fungsi ExportAsFixedFormat merupakan member dari Worksheet Object... ;)

  3. iia mas @Caton saya ingin meletakan tombol dengan kode vba save as pdf.. saya mempunyai lembar kerja dengan data vlookup dan hlookup dan saya rasa apabila saya menggunakan save as terus mengganti tipe satu persatu (padahal datanya banyak) saya ingin atau mempunyai keinginan dengan membuat tombol dengan save as pdf mohon bantuannya

  4. Caton

    23 Des 2017 Terverifikasi Indonesia + 20.101 Poin

    Skrip di atas sudah dicoba belum... :) Khan tinggal nambahin tombol, masukin skrip tersebut di salah satu baris kode VBA-nya pada prosedur yang dipanggil oleh tombol tersebut. Kalau mau nama file PDF-nya dinamis, bisa dibuat berdasarkan nama Workbook plus nama Worksheet, misalkan:

    Dim sFileName as String
    
    ...
    With Activesheet
       sFileName = ThisWorkbook.Path & "\" & ThisWorkbook.Name & " - " & Activesheet.Name
       Sheet2.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFileName , _
            Quality:=xlQualityStandard, OpenAfterPublish:=False
    End With
    ...

    Mungkin baiknya mas @Fredi berikan contoh file yang berisi Worksheet yang akan disimpan dalam format PDF. Jadi rekan-rekan BeORG juga punya gambaran proses dan kode VBA yang akan disusun... ;)

  5. Dear mas caton...... dan mas fredi maaf saya mohon izin ikut belajar juga nih dari skrip-nya...
    saya sudah coba masuk ke menu mas... file terlampir.
    tetapi ada error "Wrong number of arguments or invalid property assigment"
    mohon dapat pencerahan solusinya....
    terima kasih...

  6. Caton

    2 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    Tested... Gak ada masalah dengan scriptnya. Berjalan tanpa error... Untuk sementara, coba scriptnya diubah dulu menjadi:

    Sub exceltopdf()
        Dim sFileName As String
    
        With ActiveSheet
            sFileName = ThisWorkbook.Path & "\" & ThisWorkbook.Name & " - " & .Name
            .ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFileName, _
                Quality:=xlQualityStandard, OpenAfterPublish:=False
        End With
    End Sub

    atau bisa juga seperti berikut untuk objek Sheet2 (Budi):

    Sub exceltopdf()
        Dim sFileName As String
        
        sFileName = ThisWorkbook.Path & "\" & ThisWorkbook.Name & " - " & Sheet2.Name
        Sheet2.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFileName
    End Sub

    Demikian... ;)

  7. terima kasih mas caton atas response dan pencerahannya.... saya coba dahulu....
    saya lupa meng-info bahwa di file yang saya lampirkan, sudah coba buat ribbon nya pk di sub menu "HOME" disebelah kanan... ada kemungkinan error nya dari link macronya...
    saya coba script revisinya pk...
    terima kasih

  8. Di sunting 6 tahun lalu oleh Fujiansyah92

    Izin gabung ya

    Coba ini :

    Sub exceltopdf(control As IRibbonControl)
    Dim errh
    On Error GoTo errHandler
    Dim sFileName As String
    With ActiveSheet
       sFileName = ThisWorkbook.Path & "\" & ThisWorkbook.Name & " - " & ActiveSheet.Name
       Sheet1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFileName, _
            Quality:=xlQualityStandard, OpenAfterPublish:=False
    End With
    MsgBox "PDF file has been created"
    Exit Sub
    errHandler:
    MsgBox "Could not create PDF file"
    End Sub

    kesalahannya hanya pada coding di ribbonnya . Harusnya ditambahkan jadi

    Sub exceltopdf(control As IRibbonControl)

  9. Caton

    2 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    Oh... iya, mas @Fujiansyah92 benar. Saya tidak memperhatikan masalah Ribbon-nya tuh. Silahkan mas @nafis2006 perbaiki sedikit pada parameter prosedurnya... ;)

    Thanks mas @Fujiansyah92

  10. .. sama sama mas @Caton . mas , tahu kan mengenai RangetoHTML ?
    bisa bantu saya agar convert include image di sheet untuk di masukkan ke email ?
    atau sbg alternatif ... insert image dari sheet ke body message

    nanti saya open new discussion

  11. Caton

    2 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    RangeToHTML dari Ron de Bruin ? Saya belum pernah nyoba script-nya... :) Mungkin bisalah dicoba sama-sama klo memang ada kasusnya ... :) Mungkin prosesnya simpan range menjadi gambar kemudian di embed ke HTML ya... Klo embed image ke HTML Email Body saya pernah mencoba...

  12. iya mas @Caton .

    Coba di visit dulu ya kesini

  13. mantap..... terima kasih banyak mas fujiansyah92..... dan mas caton....
    sangat membantu sekali......

  14. Ass.
    mas Fujiansyah92 dan mas caton....
    saya ada pertanyaan lanjutan dengan topik yang sama...
    Hasil file PDF yang dibuat alamat folder nya kok tidak bisa sama dengan folder workbook yang aktif....
    untuk merubah sricpt biar sama folder nya dimana yah mas.....

    terima kasih

  15. asikk belajar banyak.. coba share file dari grup sebelah, ini lampiran filenya, hasil pdf sudah disimpan sesuai folder excel di save dan tidak bisa ganda, bisa dirubah sesuai tanggal atau bisa meng custom nama di str name atau apalah itu coba diutak atik hehehehe...

  16. sekalian tanya dan mohon bimbingan belajarnya yah mas @Caton @Fujiansyah92 @nafis2006 saya punya permasalahan di file terlampir, dan saya ingin mempelajarinya, adakah titik terang dari permasalahan saya? mohon bantuannya yah master. Terimakasih sebelumnya

  17. Caton

    3 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    @nafis2006 Hasil file PDF yang dibuat alamat folder nya kok tidak bisa sama dengan folder workbook yang aktif... untuk merubah sricpt biar sama folder nya dimana yah mas....

    Dengan script berikut:

    Sub ExcelToPDF(control As IRibbonControl)
        Dim sFileName As String
    
        With ActiveSheet
            .DisplayPageBreaks = False
            sFileName = ThisWorkbook.Path & "\" & ThisWorkbook.Name & " - " & .Name
            .ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFileName, _
                Quality:=xlQualityStandard, OpenAfterPublish:=False
            .DisplayPageBreaks = False
        End With
    End Sub

    saya coba pada komputer yang saya gunakan, file PDF yang dihasilkan berada tepat pada folder dimana Workbook dari script tersebut berada. Saya tidak tahu apakah ada perbedaan pada inti script VBA yang mas @Nafis2006 buat...

    Atau jika prosesnya dilakukan terhadap Workbook yang berbeda, yakni jika script di atas dieksekusi tanpa parameter control As IRibbonControl, maka hasil PDF tetap berada folder dimana Workbook dari script tersebut berada. Asumsikan, scriptnya berada pada file C:\TestPDF\TestPDF.xlsm kemudian script tersebut dieksekusi terhadap file C:\Data\TestData.xlsx, maka hasil PDF-nya akan tetap berada pada folder C:\TestPDF\, bukan pada folder C:\Data\... Demikian yang saya ketahui...

    Atau mungkin mas @Nafis2006 bisa mencoba script pada file yang dilampirkan mas @Fredi di atas... ;)

  18. Di sunting 6 tahun lalu oleh Fujiansyah92

    @fredi sekalian tanya dan mohon bimbingan belajarnya yah mas @Caton @Fujiansyah92 @nafis2006 saya punya permasalahan di file terlampir, dan saya ingin mempelajarinya, adakah titik terang dari permasalahan saya? mohon bantuannya yah master. Terimakasih sebelumnya

    mas @fredi . Simple nya sih seperti ini di sheet2 range C5 =IF(NOT(ISERROR(SEARCH(B5,FORM!$B$9))),"Ada","Tidak ada")

    File Terlampir

  19. terimakasih mas, kalu pake vba Bisa?

  20. @nafis2006 control As IRibbonControl

    @nafis2006 , apakah seperti maksudnya (di folder yg sama dg workbook/file yg aktif - tanpa extension)?
    File terlampir ya

    Sub exceltopdf(control As IRibbonControl)
    Dim errh
    On Error GoTo errHandler
    Dim sFileName As String
    Dim strTestString As String
    strTestString = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))
    With ActiveSheet
       sFileName = ThisWorkbook.Path & "\" & strTestString
       ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFileName, _
            Quality:=xlQualityStandard, OpenAfterPublish:=False
    End With
    MsgBox "PDF file has been created"
    Exit Sub
    errHandler:
    MsgBox "Could not create PDF file"
    End Sub

  21. Newer ›
 

atau Mendaftar untuk ikut berdiskusi!