Script VBA PDF untuk Semua Data

  1. 3 minggu lalu
    Di sunting 3 minggu lalu oleh fredi

    Assalamu'alaikum Wr. Wb.

    Para master saya ingin bertanya mengenai script VBA untuk PDF (file terlampir), agar saat save as ke pdf tidak satu persatu.. terimakasih sebelumnya atas bantuannya..

  2. manweljs_

    Apr 30 Terverifikasi + 8.613 Poin

    @fredi ...agar saat save as ke pdf tidak satu persatu..

    maksudnya jadi satu file PDF dengan beberapa lembar halaman?

  3. Ia mas @manweljs_ adakah caranya?

  4. manweljs_

    Apr 30 Terverifikasi + 8.613 Poin

    @fredi Ia mas @manweljs_ adakah caranya?

    coba cek lampiran

  5. Di sunting 3 minggu lalu oleh fredi

    Terimakasih mas @manweljs_ tapi ada pertanyaan lagi.. setelah saya coba muncul pesan seperti di gambar, bagaimana kalau datanya ada banyak artinya harus menghapus sebanyak data tersebut?

  6. manweljs_

    Apr 30 Terverifikasi + 8.613 Poin
    Di sunting 3 minggu lalu oleh manweljs_

    @fredi ...tapi ada pertanyaan lagi.. setelah saya coba muncul pesan seperti di gambar, bagaimana kalau datanya ada banyak artinya harus menghapus sebanyak data tersebut?...

    di komputer saya tidak muncul pesan tersebut. coba tambahkan baris skrip :

    ...
    application.displayAlerts = False 'di awal
    ...
    application.displayAlerts = true 'di akhir
    ...

  7. Di sunting 3 minggu lalu oleh fredi

    Terimakasih mas@manweljs_ berhasil mas... terimakasih.. tapi kalau boleh tanya lagi.... saya coba andai print area saya dua halaman atau lebih kok yang ter save pdf hanya halaman pertama ? halaman kedua dan seterusnya tidak mas? kenapa ya?

    Atau harus merubah ini? boleh tau apa maskud dari RowHeight = 40?

  8. manweljs_

    Apr 30 Terverifikasi + 8.613 Poin

    @fredi ...saya coba andai print area saya dua halaman atau lebih kok yang ter save pdf hanya halaman pertama ?...

    perhatikan area yang dicopy :

    ...
    .Range("A1:E10").Copy
    ...

    @fredi ...Atau harus merubah ini? boleh tau apa maskud dari RowHeight = 40?...

    tergantung file yang sebenarnya, saya hanya membuatkan sesuai contoh yang ada. maksud dari RowHeight adalah agar tinggi baris ke 5 dan 6 sama dengan templatenya.

  9. Terimakasih sekali lagi mas @manweljs_ tapi tetep ngga bisa, emang akunya ga mudeng wkwkkw..maaf mas ini pakai file uji coba karena sebenernya pengin belajar terus di utak atik biar tahu maksud baris perbarisnya... nanti rencanya ada sekitar 9 halaman dari rataan 50 data... kalau dipikir -pikir satu persatu tentunya menyita waktu...makanya pengin belajar biar satu klik nunggu jadi hee...

  10. Di sunting 3 minggu lalu oleh fredi

    Karena setelah saya ganti range copynya (a1;e50).. hasilnya tidak sesuai dengan print area, Kenapa ya mas?

  11. manweljs_

    Apr 30 Terverifikasi + 8.613 Poin
    Di sunting 3 minggu lalu oleh manweljs_

    @fredi ...tapi tetep ngga bisa, emang akunya ga mudeng wkwkkw..maaf mas ini pakai file uji coba karena sebenernya pengin belajar terus di utak atik biar tahu maksud baris perbarisnya... nanti rencanya ada sekitar 9 halaman dari rataan 50 data... kalau dipikir -pikir satu persatu tentunya menyita waktu...makanya pengin belajar biar satu klik nunggu jadi hee...

    jadi gini,

    setahu saya print as pdf agar menjadi 1 file pdf di excel tidak memungkinkan dengan perintah looping, yang bisa dilakukan adalah print multiple worksheet. jadi idenya adalah membuat worksheet baru untuk setiap event looping tersebut.

    dalam 1 sheet jika terdapat lebih dari 1 halaman tidak akan menjadi masalah, yang jadi masalah adalah pada saat data pada halaman2 tersebut berubah dan ingin di jadikan 1 file bersama dengan data sebelumnya, ini yang tidak dimungkinkan (setahu saya - semoga saya salah), kecuali itu menjadi file berbeda. misalnya file1.pdf, file2.pdf dst... dengan kata lain, jika akan terjadi 50 kali perubahan data, maka akan ada 50 file pdf.

    jika anda ingin membuatnya menjadi 1 file, maka yang harus dilakukan adalah mengkopi seluruh data yang akan dicetak pada sheet masternya lalu paste di 'sheet baru', kemudian hal ini diulang sampai semua data berada pada sheet nya masing2, setelah itu semua 'sheet baru' tersebut dipilih dan print sebagai PDF.

    kira-kira begitu idenya. semoga tidak bertambah bingung.

  12. manweljs_

    Apr 30 Terverifikasi + 8.613 Poin
    Di sunting 3 minggu lalu oleh manweljs_

    @fredi ...Karena setelah saya ganti range copynya (a1;e50).. hasilnya tidak sesuai dengan print area, Kenapa ya mas?...

    masalahnya adalah RowHeight yang tidak beraturan. solusinya edit menjadi :

    ....
        With Sheet2
            .[f1] = i
            .Range("A1:E50").Copy
            Sheets("Page" & i).Range("A1").PasteSpecial xlPasteValues
            Sheets("Page" & i).Range("A1").PasteSpecial xlPasteFormats
            For r = 1 To 50 ' <-- karena baris yang di copy (RowHeight nya yg tidak beraturan) sampai 50
                Sheets("Page" & i).Range("A" & r).RowHeight = .Range("A" & r).RowHeight
            Next r
        End With
    ....

  13. wuiiihhhhhh oke mas @manweljs_ terimakasih atas ide dan sumbangsih bantuannya... semoga sehat selalu... thanks mas.

  14. mas @manweljs_ boleh tanya lagi mas? file terlampir

  15. manweljs_

    Mei 2 Terverifikasi + 8.613 Poin
    Di sunting 3 minggu lalu oleh manweljs_

    @fredi mas @manweljs_ boleh tanya lagi mas? file terlampir

    caranya bisa bermacam2

    misalnya :

    'Unprotect sheet dan kolom F jadi value
    Sub Pencet1()
    Sheet1.Unprotect "1"
    Dim rng As Range, sel As Range
    Set rng = Range("F4:F8")
    For Each sel In rng
        sel = sel.Value
    Next
    End Sub
    
    'Protect sheet dan kolom F jadi formula
    Sub Pencet2()
    Sheet1.Unprotect "1"
    Dim rng As Range, sel As Range
    Set rng = Range("F4:F8")
    For Each sel In rng
        Formula = "=O" & sel.Row
        sel = Formula
    Next
    Sheet1.Protect "1"
    End Sub

 

atau Mendaftar untuk ikut berdiskusi!