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












Kirim email ke