invoice counter dan tombol print by approval

  1. 3 tahun lalu
    Di sunting 3 tahun lalu oleh willy

    halo suhu2... newb mau minta pencerahan. sy mau buat aplikasi untuk penjualan dan cetak invoice. bagian penjualannya, dalam 1 nomor invoice, terkadang bisa 2 produk atau mungkin lebih. sy menggunakan inv counter dengan rumus sumif, tp hasilnya dlm 1 nomor inv yg sama, terhitung 2. dan bila customer tsb sdh ada 1 invoice menggantung sebelmnya, untuk inv yang kedua, harus minta approval ke atasan untuk bisa cetak inv.
    pertanyaan pertama: bagaimana supaya bisa terhitung 1 jika nomor inv sama?
    pertanyaan kedua: untuk yang cetak invoice, bagaimana memunculkan serta mencetak data dari sheet lain sesuai data sel "nomor invoice" dan bila customer tsb sdh invoice ke 2 harus minta approval. disini yg sy mau buat 2 tombol print (normal print dan superuser print). su print harus ada password.

  2. halo.. ada yg berkenan bantu?

  3. Caton

    4 Mei 2021 Terverifikasi Indonesia + 20.101 Poin

    Halo mas @willy ...

    Untuk pertanyaan pertama,

    @willy bagaimana supaya bisa terhitung 1 jika nomor inv sama

    ini maksudnya untuk kolom J pada sheet DB? Kalau ya, gunakan saja formula :

    =IF(SUMIF(Penjualan!AC:AC;DB!I4;Penjualan!AE:AE)>0;1;0)

    atau

    =--(SUMIF(Penjualan!AC:AC;DB!I4;Penjualan!AE:AE)>0)

    Untuk pertanyaan kedua,

    @willy untuk yang cetak invoice, bagaimana memunculkan serta mencetak data dari sheet lain sesuai data sel "nomor invoice"

    Ini bagaimana alur proses sebenarnya? Apakah di sheet CETAK INV muncul dahulu data yang akan dicetak, ataukah data tersebut ditampilkan dahulu menggunakan macro VBA? Lalu, apakah invoicenya dicetak satu persatu atau secara keseluruhan berdasarkan nomor invoice yang sama? Kalau saya perkirakan, berdasarkan pernyataan "bila customer tsb sdh invoice ke 2 harus minta approval", itu invoicenya akan dicetak satu persatu (per baris data), benar demikian?

  4. rumus yg tadi mas caton berikan, =if(SUMIF(Penjualan!AC:AC;DB!I4;Penjualan!AE:AE)>0) atau =IF(SUMIF(Penjualan!AC:AC;DB!I4;Penjualan!AE:AE)>0;1;0) tidak bisa mas. betul, rumus tsb untuk di sheet db, tp dengan syarat, inputan data pada sheet penjualan, semisal dengan nomor invoice "1500". dan ada 2 produk yg di pesan, otomatis pasti kita inputnya 2 baris kan mas. nah, permasalahnya disini dalam 2 baris tsb, dengan rumus sumif yg saya pakai sebelumnya, terhitung "2" yang harusnya yg muncul 1 saja, karena antara 2 row inputan pada sheet penjualan tsb, nomor invoice masih sama. (sama-sama invoice nomor "1500")
    dan yg untuk mencetak, invoice akan di cetak satu persatu dengan per nomor invoice. untuk menampilkannya, sy sdh menemukan rumusnya. hanya tinggal tombol print. normal print (admin) dan SU print (bila ada "minta approval"). kira2 baiknya untuk tombol printnya lebih mudah vba atau yg biasa ya mas?

  5. Caton

    5 Mei 2021 Terverifikasi Indonesia + 20.101 Poin

    Mas @willy ...

    Kalau kriteria atau filternya menggunakan nomor invoice, ada baiknya yang dijadikan rujukan adalah nilai pada kolom H sheet PENJUALAN (kolom No. Invoice), karena nilai pada kolom tersebut saya yakin bersifat unik.

    Terkait formula yang sebelumnya Anda gunakan, menurut saya kelemahannya ada pada rujukannya yang menghitung nilai pada kolom AE berdasarkan kriteria pada kolom AC (pada sheet PENJUALAN). Kalau yang diinginkan adalah untuk setiap nomor invoice yang sama akan terhitung sebagai 1 invoice saja, maka bisa digunakan fungsi COUNTIF terhadap kolom H. Apabila nomor invoice hanya ada 1 baris, maka tampilkan nomor indeksnya, namun jika nomor invoice sudah ada sebelumnya, maka kosongkan baris datanya. Dengan demikian, pada sheet DB, setiap indeks hanya akan terhitung 1 untuk setiap nomor invoice yang sama.

    Biar tidak bingung, silahkan lihat file terlampir.

    Sedangkan untuk masalah print, kalau seperti yang Anda utarakan, mau tidak mau, ya harus menggunakan macro. Coba manfaatkan event procedure Workbook_BeforePrint pada modul ThisWorkbook untuk menangkap even mencetak. Pada prosedur tersebut, susun script VBA yang akan menguji apakah prosesnya dicetak dalam mode NORMAL atau SU. Untuk membatalkan proses cetak, cukup mengisi variabel Cancel dengan nilai TRUE.

    Demikian.

  6. baik mas @Caton, nanti akan sy coba kembali seperti yg mas @Caton sarankan. bila nanti sy berujung stuck, mohon dibantu lagi ya mas. terima kasih mas

 

atau Mendaftar untuk ikut berdiskusi!