PRINT BERDASARKAN KRITERIA WARNA

  1. 5 tahun lalu
    Di sunting 5 tahun lalu oleh DERY FEBRIAN

    assalamualaikum wr.wb
    utk para master dan lainnya, saya memiliki file yang hendak saya cetak namun adakalanya ketika mencetak tinta warnanya kehabisan sehingga warnanya harus dialihkan ke grayscale atau black. difile ini saya memiliki 2 print area di sheet 2 dan 1 di sheet 4. semuanya hendak saya cetak berdasarkan pilihan dan option button yang ada di sheet1, nah utk file saya sertakan dan atas bantuannya saya ucapkan terimakasih....

  2. Caton

    1 Okt 2018 Terverifikasi Indonesia + 20.101 Poin

    @DERY FEBRIAN ... assalamualaikum ... semuanya hendak saya cetak berdasarkan pilihan dan option button yang ada di sheet1 ...

    Wa'alaikumsalam. Saya coba contoh pada file terlampir. Hanya saja, setahu saya hanya ada 2 mode warna yang dapat digunakan, yakni Full Color dan Grayscale saja. Sedangkan mode Black and White, mungkin masuk ke mode Grayscale saja atau Draft Print. Pada file terlampir, saya buatkan contoh Full Color, Grayscale dan Black and White (Draft), yang dapat diubah jika tidak sesuai (lihat penjelasan pada scriptnya). Namun mode cetak Draft tidak akan mencetak gambar, border dan lain-lain yang termasuk grafik (hanya datanya saja).

    Demikian, semoga sesuai.

  3. sudah saya unduh dan saya berterimakasih banyak master @Caton ...

  4. o ya master @Caton dari kode tersebut
    .[A5] = Choose(((.[A5] <= 0) * 1) + ((.[A5] > 2) * 2) + 1, .[A5], 1, 2)
    .[A6] = Choose(((.[A6] <= 0) * 1) + ((.[A6] > 2) * 2) + 1, .[A6], 1, 2)
    .[A7] = Choose(((.[A7] <= 0) * 1) + ((.[A7] > 3) * 2) + 1, .[A7], 1, 3)
    apa sih master mksudnya, terutama pada bagian terakhir tiap baris kode, maaf saya belum mengerti, terimakasih

  5. Caton

    1 Okt 2018 Terverifikasi Indonesia + 20.101 Poin

    @DERY FEBRIAN ... terutama pada bagian terakhir tiap baris kode ...

    Jadi begini. Nilai pada sel A5, A6 dan A7 pada dasarnya akan berubah sesuai perubahan yang terjadi pada kontrol ComboBox dan OptionBox. Namun ada kemungkinan nilai-nilai tersebut berubah tanpa sengaja (mungkin). Sedangkan, pada sheet tersebut, masing-masing kontrol mempunyai batas maksimum yang sudah ditentukan.

    Contoh untuk ComboBox pilihan sheet yang akan dicetak, hanya ada 2 pilihan saja. Jika nilai pada sel A5 (yang merupakan sel acuan kontrol ComboBox tersebut) tidak sesuai dengan indeks daftar item pada kontrol tersebut (misalkan saja, pada ComboBox dipilih item kedua, maka pada sel A5 seharusnya bernilai 2, namun ternyata nilai yang tertera adalah 3), maka proses script akan menghasilkan kesalahan karena tidak ada sheet ketiga yang akan diproses (lihat script berikut):

    ...
    '+-- Tetapkan sheet target.
    Set xlSheet = Choose(m_lSheetIdx, Sheet2, Sheet6)
    ...

    Karenanya, harus diperiksa dahulu nilai pada masing-masing sel acuan tersebut agar nilainya tetap berada pada range minimum dan maksimum dari masing-masing kontrol, yakni:

    cboSheetIdx   :  Min = 1, Max = 2  (kontrol untuk memilih sheet data)
    optRangeA     :  Min = 1, Max = 2  (kontrol untuk memilih range data jika sheet DATA A)
    optColorA     :  Min = 1, Max = 3  (kontrol untuk memilih mode warna)

    jadi, pada script yang ditanyakan:

    .[A5] = Choose(((.[A5] <= 0) * 1) + ((.[A5] > 2) * 2) + 1, .[A5], 1, 2)

    nilai sel A5 pada Sheet5 (CONFIG) akan ditentukan berdasarkan pilihan hasil dari operasi logika berikut:

    ((.[A5] <= 0) * 1) + ((.[A5] > 2) * 2) + 1

    — Contoh 1. Misalkan saja tanpa sengaja nilai sel A5 diubah menjadi 5, maka dengan operasi logika di atas akan menghasilkan nilai sebagai berikut:

    = Choose(((.[A5] <= 0) * 1) + ((.[A5] > 2) * 2) + 1, .[A5], 1, 2)
    = Choose(((5 <= 0) * 1) + ((5 > 2) * 2) + 1, 5, 1, 2)
    = Choose((FALSE * 1) + (TRUE * 2) + 1, 5, 1, 2)
    = Choose((0 * 1) + (1 * 2) + 1, 5, 1, 2)
    = Choose(0 + 2 + 1, 5, 1, 2)
    = Choose(3, 5, 1, 2)
    = Choose(3, N/A, N/A, 2)
    = 2

    — Contoh 2. Misalkan nilai sel A5 adalah -10, maka dengan operasi logika di atas akan menghasilkan nilai sebagai berikut:

    = Choose(((.[A5] <= 0) * 1) + ((.[A5] > 2) * 2) + 1, .[A5], 1, 2)
    = Choose(((-10 <= 0) * 1) + ((-10 > 2) * 2) + 1, -10, 1, 2)
    = Choose((TRUE * 1) + (FALSE * 2) + 1, -10, 1, 2)
    = Choose((1 * 1) + (0 * 2) + 1, -10, 1, 2)
    = Choose(1 + 0 + 1, -10, 1, 2)
    = Choose(2, -10, 1, 2)
    = Choose(2, N/A, 1, N/A)
    = 1

    — Contoh 3. Misalkan nilai sel A5 adalah 1, maka dengan operasi logika di atas akan menghasilkan nilai sebagai berikut:

    = Choose(((.[A5] <= 0) * 1) + ((.[A5] > 2) * 2) + 1, .[A5], 1, 2)
    = Choose(((1 <= 0) * 1) + ((1 > 2) * 2) + 1, 1, 1, 2)
    = Choose((FALSE * 1) + (FALSE * 2) + 1, 1, 1, 2)
    = Choose((0 * 1) + (0 * 2) + 1, 1, 1, 2)
    = Choose(0 + 0 + 1, 1, 1, 2)
    = Choose(1, 1, 1, 2)
    = Choose(1, 1, N/A, N/A)
    = 1

    Begitu ± logika dari script tersebut. Logika serupa juga untuk baris script:

    ...
    .[A6] = Choose(((.[A6] <= 0) * 1) + ((.[A6] > 2) * 2) + 1, .[A6], 1, 2)
    .[A7] = Choose(((.[A7] <= 0) * 1) + ((.[A7] > 3) * 2) + 1, .[A7], 1, 3)
    ...

    Demikian, semoga dapat dipahami.

  6. Di sunting 5 tahun lalu oleh DERY FEBRIAN

    baiklah master@Caton ada lagi dibagian akhir yang kurang saya pahami dari kode tersebut yakni
    pada contoh 1
    = Choose(3, 5, 1, 2)
    = Choose(3, N/A, N/A, 2)
    = 2
    berarti nilai yang diambil 2 terus kenapa 1 bernilai N/A bukan sebaliknya nilai 1 yang diambil
    hal yang sama dengan kode pada contoh kedua
    = Choose(2, -10, 1, 2)
    = Choose(2, N/A, 1, N/A)
    = 1

    terus kenapa nilai 1 yang diambil bukan nilai 2 , dan berikutnya kenapa ada nilai akhir antara batas minimum dan maximum dari kode tersebut bernilai N/A seperti 1 nilai N/A atau 2 nilai N/A padahal nilai tersebut masuk kategori minimum dan maximum

  7. Caton

    1 Okt 2018 Terverifikasi Indonesia + 20.101 Poin
    Di sunting 5 tahun lalu oleh Caton

    @DERY FEBRIAN ... ada lagi dibagian akhir yang kurang saya pahami dari kode tersebut ...

    Fungsi CHOOSE pada VBA ± serupa dengan fungsi CHOOSE pada formula Excel. Sintaksnya:

    Choose(index, choice-1[, choice-2, ... [, choice-n]])

    dengan sintaks tersebut, maka jika fungsi CHOOSE digunakan pada script berikut:

    = Choose(3, 5, 1, 2)

    Pada script tersebut, masing-masing parameter:

    Index    = 3
    choice-1 = 5
    choice-2 = 1
    choice-3 = 2

    Jadi, indeks pilihan ketiga adalah 2. Sama halnya dengan baris script:

    = Choose(2, -10, 1, 2)

    Pada script tersebut, masing-masing parameter:

    Index    = 2
    choice-1 = -10
    choice-2 = 1
    choice-3 = 2

    Jadi, indeks pilihan kedua adalah 1. Adapun notasi N/A pada penjelasan saya di atas maksudnya adalah item pilihan pada posisi indeks ke-n (Choice-n) tersebut tidak tersedia untuk diambil nilainya karena parameter Index-nya sudah ditetapkan. Jadi:

    = Choose(3, N/A, N/A, 2)

    artinya item pilihan yang tersedia untuk diambil nilainya hanyalah item pilihan ke-3, yakni nilai 2.

    @DERY FEBRIAN ... terus kenapa nilai 1 yang diambil bukan nilai 2 ...

    Karena item pilihan pada posisi indeks ke-2 adalah nilai 1. Agar lebih yakin, coba gunakan notasi tersebut pada sebuah Worksheet. Misalkan pada sheet CONFIG, sel H1, isi dengan formula:

    = CHOOSE(2; -10; 1; 2)

    dan lihat berapa nilai yang dihasilkan (sesuaikan tanda titik koma dengan tanda pemisah pada Excel yang Anda gunakan).

    @DERY FEBRIAN ... berikutnya kenapa ada nilai akhir antara batas minimum dan maximum dari kode tersebut bernilai N/A ...

    Kembali saya tegaskan, notasi N/A yang saya gunakan dalam penjelasan di atas tujuannya agar dapat dipahami bahwa nilai tersebut tidak tersedia nilainya sebagai hasil dari fungsi CHOOSE tersebut, dikarenakan parameter Index pada fungsi tersebut tidak ditetapkan pada posisi indeks ke-n yang saya notasikan sebagai N/A tersebut. Pelajari kembali sintaksnya sebagaimana yang saya jelaskan di atas.

    Demikian, semoga dapat dipahami ... :)

  8. saya mengerti sekarang , terimakasih master@Caton ...

 

atau Mendaftar untuk ikut berdiskusi!