Script VBA PDF untuk Semua Data

  1. 5 tahun lalu
    Di sunting 5 tahun 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..

    @fredi seperti ini mas

    karena :

    1. anda tidak menjelaskan hasil copy mau ditaruh dimana
    2. seharusnya anda menyiapkan 10 kelas yg anda maksud
    3. anda tidak memberikan contoh hasil yg dinginkan

    jadi saya coba menjawab dengan pemahaman saya sendiri. kalo belum sesuai yg di tanyakan silahkan dikembangkan contoh terlampir.

  2. @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. @fredi Ia mas @manweljs_ adakah caranya?

    coba cek lampiran

  5. Di sunting 5 tahun 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. Di sunting 5 tahun 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 5 tahun 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. @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 5 tahun lalu oleh fredi

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

  11. Di sunting 5 tahun 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. Di sunting 5 tahun 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. Di sunting 5 tahun 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

  16. oke mas terimakasih heee mas boleh tanya lagi, semisal kita mau copy data di suatu range pada satu kolom , misal kolom A, cara copy dari baris bertama sampai baris terakhir yang terisi data saja tetapi di tengah tengah kolom tersebut ada yang tidak terisi data, itu caranya seperti apa mas

  17. @fredi ...semisal kita mau copy data di suatu range pada satu kolom , misal kolom A, cara copy dari baris bertama sampai baris terakhir yang terisi data saja tetapi di tengah tengah kolom tersebut ada yang tidak terisi data, itu caranya seperti apa...

    copy aja semuanya kemudian hapus baris yg kosong.

  18. maksud saya seperti file terlampir mas hee

  19. @fredi maksud saya seperti file terlampir mas hee

    saya kurang paham maksud pertanyaan anda. coba tambahkan contoh hasil yg diinginkan.

    btw, kalo cuma mau cari baris terakhir bisa menggunakan :

    lastrow = cells(rows.count, 2).end(xlup).row
    
    -- atau --
    
    lastrow = range("B" & rows.count).end(xlup).row

  20. seperti ini mas

  21. Newer ›
 

atau Mendaftar untuk ikut berdiskusi!