Dear Master Kid
Canggih betul bos, mantaf, tengkyu, ane belajar banyak nihh,,, Tengkyu riki From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com] Sent: Thursday, November 12, 2015 5:03 AM To: BeExcel Subject: Re: [belajar-excel] Perintah berulang [1 Attachment] Hai Riki, 1. Perintah berulang untuk pindah cells aktif bunyinya begini : (disebuah prosedur dalam general module) dim lBaris as long for lBaris=2 to 5 'loop setiap nilai mulai dari 2 sampai 5 cells( lbaris , "a" ).activate 'hasil dari activate, 1 cell akan menjadi aktif dan bisa pakai object activecell 'atau pakai select agar bisa pakai object Selection 'cells(lbaris , "a" ).select '1 cells yang di select akan aktif 'tampilkan pesan (bila perlu) atau anggap saja ini proses panjang yang dilakukan prosedur lain msgbox "Cell aktif di " & activecell.address next lbaris 2. Perintah untuk meminta suatu nilai input yang bertipe numerik : (disebuah prosedur dalam general module) 'memanfaatkan InputBox milik Application dim vInput as variant ULANG: 'ini namanya label baris kode vinput=application.inputbox("Masukkan nilai numerik minimal 2","Input nilai",2,type:=1) 'type:=1 untuk input number only if vartype(vinput)=vbboolean then 'cek kalau hasilnya bertipe boolean saat user tekan cancel 'pesan atau proses keluar disini msgbox "di Cancel",vbinformation,"Input nilai" exit sub elseif vinput<2 then 'misal validasi input kalau kurang dari 2 maka di tanya ulang msgbox "Nilai minimal adalah 2",vbexclamation,"Input nilai" goto ULANG else 'selainnya msgbox "Inputan Anda adalah " & vinput endif 3. Memanggil prosedur lain >> misal ada prosedur bernama ProsesUtama berbunyi : public sub ProsesUtama() msgbox "ini baris kode di dalam prosedur sebagai suatu proses utama",vbinformation,"Sub ProsesUtama" end sub >> kemudian ada prosedur lain yang dijalankan (misal dijalankan saat user klik >> suatu tombol) bernama TombolKlik berbunyi : public sub TombolKlik() ProsesUtama 'menjalankan atau memanggil prosedur lain bernama ProsesUtama end sub >> jika prosedur TombolKlik dijalankan, maka prosedur ProsesUtama dipanggil >> atau dijalankan oleh prosedur TombolKlik. >> proses yang ada di dalam ProsesUtama adalah menampilkan pesan. Jadi, pesan >> akan muncul. >> Cara seperti ini bisa Anda gunakan dalam proses berulang. >> misal ada prosedur yang dijalankan saat klik suatu tombol bernama >> KlikSekaliProsesBerulang berbunyi : public sub KlikSekaliProsesBerulang() dim lBaris as long for lBaris=2 to 5 ProsesUtama 'panggil prosedur ProsesUtama next lbaris end sub >> Jadi, prosedur ProsesUtama akan dipanggil sebanyak 4 kali (loop dari 2 >> sampai 5 adalah 2,3,4,5 alias 4 kali perulangan) Sampai disini, mestinya sudah bisa menggabungkan seluruh bahasan di atas menjadi satu alur proses yang Anda butuhkan melalui 2 prosedur, yaitu prosedur yang dijalankan saat user klik sesuatu dan sebuah prosedur yang berisi proses pokok yang akan dikerjakan. Yang ini buat yang berminat saja.... Sebuah prosedur yang bisa digunakan oleh banyak prosedur lainnya secara dinamis akan menguntungkan, karena baris kode bisa disusun sebagai kelompok proses. Contohnya seperti di atas tadi, prosedur ProsesUtama bisa digunakan oleh prosedur lainnya yang membutuhkan proses-proses yang ada dalam prosedur ProsesUtama. Anggap saja ProsesUtama berisi proses sort tabel data di sheet bernama 'MyData', maka prosedur lain yang membutuhkan proses sort tersebut bisa memanggil prosedur ProsesUtama. Sekarang, bagaimana jika ingin proses di dalam ProsesUtama mengerjakan sesuatu tergantung si pemanggil ? Misal, jika ProsesUtama dipanggil oleh TombolProsesSatu, maka akan menampilkan pesan berbunyi X. Kalau oleh prosedur TombolProsesDua akan menampilkan pesan berbunyi Y. *** Menampilkan pesan adalah contoh proses di dalam ProsesUtama yang bisa Anda sesuaikan dengan kebutuhan, misalnya disesuaikan untuk menjadi sebuah proses Sort atau Copy Paste atau berbagai proses. Untuk kebutuhan seperti ini, dibutuhkan media mengirimkan bunyi pesan kepada prosedur ProsesUtama untuk ditampilkan. Media ini disebut input parameter. Contoh bunyi prosedur ProsesUtama untuk narasi tersebut adalah sebagai berikut : 'ProsesUtama harus diberi nilai string ke dalam variabel sBunyiPesan agar bisa bekerja Public Sub ProsesUtama( sBunyiPesan as string ) msgbox sBunyiPesan, vbinformation , "Pesan oleh ProsesUtama" end sub Prosedur TombolProsesSatu yang ingin memproses bunyi X menjadi berbunyi : public sub TombolProsesSatu() dim sPesanSatu as string sPesanSatu="Pesan berbunyi X dari TombolProsesSatu" 'proses menyiapkan nilai untuk ProsesUtama ProsesUtama sPesanSatu 'panggil ProsesUtama dengan memberi input ke sBunyiPesan dari sPesanSatu end sub Prosedur TombolProsesDua yang ingin memproses bunyi Y menjadi berbunyi : public sub TombolProsesDua() dim sPesanDua as string sPesanDua="Ini Y dari TombolProsesDua" 'proses menyiapkan nilai untuk ProsesUtama ProsesUtama sPesanDua 'panggil ProsesUtama dengan memberi input ke sBunyiPesan dari sPesanDua end sub Jadi, > jika TombolProsesSatu dijalankan, pesan yang ditampilkan ProsesUtama adalah > nilai di sPesanSatu. > jika TombolProsesDua dijalankan, pesan yang ditampilkan ProsesUtama adalah > nilai di sPesanDua. Contoh nyata dari prosedur-prosedur berparameter seperti ini adalah fungsi-fungsi bawaan Excel, seperti vLookUp saja deh. User bisa memasukkan nilai lookup, area range lookup, nomor kolom area lookup yang diambil, cara pencarian. User bisa memasang fungsi vlookup di banyak sheet dan range berbeda yang merujuk ke range dan sheet yang berbeda pula. Tetapi prosedur vLookUp hanya ada satu saja di dalam Excel. Bukankah sangat dinamis dan menjadi simpel? Syaratnya sederhana, yaitu pahami dengan benar datatype. Hal-hal tentang VBA bisa dilihat di blog milis di http://b-excel.blogspot.co.id/ Untuk belajar VBA, bisa dimulai dari sini <http://b-excel.blogspot.co.id/2013/06/belajarvba-000-kenalan.html> . Selesai.... File terlampir adalah contoh untuk kasus perintah berulang, tetapi tidak pakai banyak prosedur seperti di atas karena prosesnya spesifik untuk kegiatan dari 1 tombol saja, yaitu melalui shape GO di sheet bernama Data. Wassalam, Kid 2015-11-11 7:15 GMT+07:00 'Riki' ricky45chi...@yahoo.co.id <mailto:ricky45chi...@yahoo.co.id> [belajar-excel] <belajar-excel@yahoogroups.com <mailto:belajar-excel@yahoogroups.com> >: Dear Master Kid, Iya dari vertical ke horizontal, betul ada beberapa yang tidak sesuai, tapi itu diabaikan saja, karena memang untuk yang tidak sesuai memang tidak diperlukan, biarkan nanti di sort dan dihapus manual. Ane minta tolong saja, ketika ane klik tombol ‘button’ ada pertanyaan dulu sebelum diolah berapa baris yang akan diolah. Begitu kira-kira master. Trims Riki From: belajar-excel@yahoogroups.com <mailto:belajar-excel@yahoogroups.com> [mailto:belajar-excel@yahoogroups.com <mailto:belajar-excel@yahoogroups.com> ] Sent: Monday, November 9, 2015 4:19 PM To: BeExcel Subject: Re: [belajar-excel] Perintah berulang Hai Riki, Prosesnya untuk membentuk tabel vertikal dari data horisontal ya ? Bagaimana dengan bagian blok yang kolomnya todak sesuai (coba lihat di sheet OL2 kolom mix form) ? Apakah memang harus tetap tidak sesuai seperti itu ? Wassalam, Kid 2015-11-09 11:16 GMT+07:00 'Riki' ricky45chi...@yahoo.co.id <mailto:ricky45chi...@yahoo.co.id> [belajar-excel] <belajar-excel@yahoogroups.com <mailto:belajar-excel@yahoogroups.com> >: Dear Masters, Minta tolong, ane punya data terlampir. Ane cuma pengen tambah perintah macro, agar berulang sebanyak yang ane perintahkan (pake tombol input or gimana lah, ane juga ga ngerti masih belajar juga). Karena kalo data nya banyak ane harus click satu-persatu per baris untuk mengolah data 1 baris tersebut. Kalo kurang mengerti, silahkan lihat data excelnya, dan coba jalanin macro nya. Sori ya ane newbie jadi pertanyaannya simple aja. Makasih Masters Riki