mensetting printer untuk masing-masing sheet

  1. 2 minggu lalu

    saya telah membuat program excell yang mana masing-masing sheet dicetak menggunakan printer yang berbeda, kadang saya lupa harus mensetting printer terlebih dahulu sehingga pada saat di cetak ternyata keluar di printer yang lain...,
    pertanyaan saya bagaimana caranya mensetting printer untuk masing-masing sheet.

    salam
    eroz

  2. Caton

    Nov 26 Terverifikasi Indonesia + 15.164 Poin

    @eroz pajajaran ...

    Kalau melalui pengaturan aplikasi Excel, setahu saya tidak ada pengaturan khusus yang memungkinkan untuk hal yang dimaksud. Tapi kalau menggunakan macro VBA, masih dimungkinkan. Contohnya terlampir menggunakan macro VBA untuk mengatur printer yang akan digunakan sesuai sheet yang aktif. Silahkan dikembangkan kembali jika sesuai.

    Demikian.

  3. minggu lalu

    Terima kasih atas tanggapan dan arahannya, namun setelah saya coba tidak ada pergerakan dari printer baik untuk sheet 1 maupun sheet 2 ..... Untuk Sheet 2 saya rubah menggunakan XPS Card Printer, terlihat ada indikasi lampu berkedip namun printer tidak mencetak ( card tidak tertarik oleh printer)

    salam
    eroz

  4. Caton

    Des 3 Terverifikasi Indonesia + 15.164 Poin

    @eroz pajajaran ...

    Kalau real time yang terjadi, saya juga tidak tahu apa masalahnya. Script yang saya contohkan di atas, sebelumnya sudah saya coba di PC yang saya gunakan, dan berjalan normal :

    tes-set-printer.gif

    Script yang saya contohkan tersebut bertujuan untuk menetapkan printer yang akan digunakan pada sheet terpilih. Jika saat mas gunakan tidak muncul pesan sukses nama printer yang ditetapkan oleh script seperti gambar di atas, besar kemungkinan telah terjadi kesalahan.

    Kemungkinan kesalahan yang dapat terjadi adalah nama printer yang tidak tepat (tidak ada atau path yang salah). Pada contoh script yang saya berikan, saya gunakan nama printer yang terpasang di PC saya sebagaimana terdaftar dalam Devices and Printers. Saya tidak tahu printer apa saja yang terpasang pada PC yang mas gunakan dan bagaimana mas memasukkan nama printer yang akan diaktifkan ke dalam scriptnya.

    Sekedar informasi, pada script yang berikan di atas, kita cukup memasukkan nama printer yang akan diaktifkan tanpa path atau lokasi printer. Sebagai acuan nama printer yang terpasang, coba gunakan dan modifikasi script berikut :

    Sub GetInstalledPrinters()
        Dim lX As Long, lY As Long
        
        lY = 1
        Sheet1.Range("A1:100").ClearContents
        With CreateObject("WScript.Network")
            For lX = 1 To .EnumPrinterConnections.Count Step 2
                If Len(.EnumPrinterConnections(lX)) Then
                    Sheet1.Cells(lY, "A") = .EnumPrinterConnections(lX)
                    lY = lY + 1
                End If
            Next
        End With
    End Sub

    Jika tidak ada kendala, maka script di atas akan menampilkan daftar nama printer terpasang pada PC yang digunakan. Ambil salah satu nama printer yang akan dicoba dan masukkan pada script pada file yang saya upload sebelumnya, pada prosedur Sub SetActivePrinter. Lakukan modifikasi sesuai baris yang telah berubah berikut:

    '+-- Ganti Sh As Object menjadi Sh As Worksheet
    Private Sub SetActivePrinter(ByVal Sh As Worksheet)
        Dim sPrinter As String
        
        sPrinter = vbNullString
        If Sh.Name = Sheet1.Name Then
            '+-- Isi dengan nama printer hasil dari prosedur GetInstalledPrinters
            sPrinter = GetPrinterFullName("Nama Printer Pertama")
        ElseIf Sh.Name = Sheet2.Name Then
            '+-- Isi dengan nama printer hasil dari prosedur GetInstalledPrinters
            sPrinter = GetPrinterFullName("Nama Printer Kedua")
        End If
        
        If Len(sPrinter) Then
            On Error GoTo errHandler
            
            Me.Application.ActivePrinter = sPrinter
            MsgBox "Default Printer :  " & Me.Application.ActivePrinter
        End If
    
    errHandler:
        '+-- Tampilkan info jika terjadi kesalahan.
        If Err Then
            MsgBox "Gagal mengaktifkan printer terpilih"
        End if
        Err.Clear: On Error GoTo 0
    End Sub

    Pada prosedur Sub SetActivePrinter di atas, jika terjadi kesalahan, maka script akan menampilkan pesan kesalahan. Jika pesan yang dihasilkan berupa pesan printer telah diaktifkan sesuai nama printer yang ditentukan, namun sheet tetap tidak dapat dicetak ke printer terpilih, maka coba mas cetak secara manual dahulu sheet terkait untuk mengetahui apakah ada masalah...

    Kemungkinan kesalahan kedua, ada pada prosedur GetPrinterFullName. Prosedur tersebut saya gunakan pada Windows 7 tidak ada masalah. Untuk Windows 10, saya tidak tahu apakah akan berhasil. Namun, kalau dilihat dari scriptnya, seharusnya tidak ada masalah.

    Demikian.

 

atau Mendaftar untuk ikut berdiskusi!