macro dengan kreteria

  1. 6 tahun lalu

    minta bantuannya.
    bagaimana scrip macro untuk menyimpan data ke sheet yang berbeda dengan kreteria.
    contoh
    sheet1 kolom b2 jika di isi a maka semua data yang di input masuk sheet2 dan jika di isi b maka semua data yang di input masuk sheet3

  2. Caton

    7 Nov 2017 Terverifikasi Indonesia + 20.101 Poin

    Coba dipelajari kode VBA pada file terlampir. Saya buat sederhana saja dengan memanfaatkan objek Tabel untuk tabel data dan tabel tujuan. Jika tabel data dan tabel tujuan yang digunakan menggunakan range biasa, akan sedikit berbeda proses inisialisasinya. Konsepnya sama saja:

    [1] Lakukan pengulangan sebanyak jumlah baris data yang akan diproses.
    [2] Ambil data kriteria dari setiap baris. Lakukan proses kondisional terhadap nilai yang diambil tadi untuk menentukan target (sheet atau range tujuan).
    [3] Ambil data yang akan disalin dari setiap baris. Kalkulasi baris terakhir dari target, dan isi baris target dengan data yang telah diambil.

    Demikian konsep yang saya gunakan, mungkin bisa diadaptasikan... ;)

  3. terima kasih Caton, jika dengan range bagaimana?
    misal sheet input kolom b2 di isi A maka baris b3 sampai b10 masuk di sheet2 dan jika di isi b maka baris b3 sampai b10 masuk sheet3.

  4. Caton

    7 Nov 2017 Terverifikasi Indonesia + 20.101 Poin

    Coba file terlampir... semoga sesuai dan bisa diadaptasikan... ;)

  5. Caton

    7 Nov 2017 Terverifikasi Indonesia + 20.101 Poin

    Oia, maaf saya lupa... Untuk menyalin data pada range sebagaimana yang mas @Absetiawan18 maksudkan, coba file terlampir... ;)

  6. terima kasih cutton.
    saya masih kesulitan ne.

    Kelas : 1a
    Semester : 1
    Nama Nilai
    Lionel Messi A
    Cristiano Ronaldo B
    Xavi C

    ada beberapa kelas 1a. 1b. 1c. jika saya isi kelas 1a maka semua nama dan nilai masuk sheet kelas 1a dan jika semester 2 maka akan mengisi di kolom berikutnya.

    jika kelas di ganti 1b maka akan menyimpan di sheet kelas 1b, dan jika semester di ganti 2 maka akan menambah di kolom berikutnya.

    terima kasih

  7. contoh.jpg

  8. Caton

    28 Nov 2017 Terverifikasi Indonesia + 20.101 Poin

    Sebenarnya, teknik untuk melakukan proses seperti yang mas maksudkan bisa bermacam-macam caranya, oleh karena harus disesuaikan juga dengan bagaimana kita menginginkan atau merencanakan prosesnya. Jadi mungkin saja kode VBA yang saya buat pada file terlampir tidak sesuai dengan harapan... :) Pastinya, silahkan dipelajari dahulu file terlampir. Mungkin konsepnya bisa diterapkan atau dipelajari. Maaf, saya tidak sempat menjelaskan satu persatu tujuan dari baris kodenya. Jika ada yang tidak diketahui atau tidak dipahami, silahkan diskusikan kembali... :)

    Hal penting yang perlu diperhatikan adalah penggunaan Nama Range. Untuk memudahkan proses, nama range merupakan salah satu elemen penting dalam baris kode VBA pada file terlampir. Contohnya nama range Kelas.1A, selain digunakan untuk menetapkan range tujuan penyalinan data dari sheet DATA, juga digunakan untuk menetapkan nama sheet tujuan. Konsepnya, agar dapat target dapat dibuat dinamis tanpa harus mengutak-atik kode VBA-nya. Semisalnya akan ditambahkan sheet untuk kelas 1D, maka bisa saja sheet 1D dibuat dengan cara menyalin sheet 1A atau 1B atau dibuatkan sheet baru. Kemudian sheet yang baru tersebut diubah namanya menjadi 1D. Langkah terpentingnya adalah menetapkan nama range yang sesuai dengan nama sheet tersebut. Dalam hal ini, saya buatkan nama range-nya dengan prefik Kelas. diikuti dengan nama sheet kelasnya (misalkan 1D, sehingga menjadi Kelas.1D). Dan lingkup (Scope) dari nama range tersebut HARUS bersifat lokal (lihat gambar).

    Shoot002.png

    Silahkan disesuaikan nama range-nya sesuai selera, asal jangan lupa untuk mensinkronkan nama range yang digunakan pada kode VBA dan pada Workbook...

    Demikian yang bisa saya bantu... ;)

  9. terima kasih Caton, akan saya pelajari dulu jika ada yang binggung akan saya tanya kembali

  10. 5 tahun lalu
    Di sunting 5 tahun lalu oleh Agus Siswanto

    .

 

atau Mendaftar untuk ikut berdiskusi!