Dari hasil script dibawah, script akan meloop sebanyak n (5000x) dengan mengabaikan kondisi-kondisi if. Maksud awal utk di buatnya message alert ini yaitu
message alert akan tampil jika pada kolom B bernilai blank/ kosong dan tanggal 1 hari / 2 hari dari tanggal sekarang misal Hari ini tanggal 22 Juni Table ========================= = A = B = ========================= 1 = 6/21/2012 = LSL111000 = 2 = 6/21/2012 = = 3 = 6/20/2012 = = ========================= Message akan tampil setelah memeriksa bhwa pada baris 2 kolom B terdapat nilai kolom B yang masih kosong dan tanggal sudah 1 atau 2 hari berlalu Mohon bimbingannya ________________________________ From: Kid Mr. <[email protected]> To: [email protected] Sent: Friday, June 22, 2012 9:45 AM Subject: Re: [belajar-excel] Menampilkan message alert dengan kriteria tertentu For ... Next adalah sebuah blok script loop IF ... END IF adalah sebuah blok script kondisi Sebuah blok script bisa ada dalam blok script yang lain, tetapi tidak boleh bersilangan. Contoh blok script dalam blok script lain (nested) FOR bla=bli to blo IF klu=klo THEN 'perintah kerja kondisi ELSEIF klu=kli THEN 'perintah kerja kondisi ELSE 'perintah kerja kondisi END IF NEXT bla Tapi tidak bersilangan seperti ini (pasti error) FOR bla=bli to blo IF klu=klo THEN 'perintah kerja kondisi ELSEIF klu=kli THEN 'perintah kerja kondisi ELSE NEXT bla END IF Coba perhatikan juga, betapa bermanfaatnya indent dari sebuah blok script. Blok IF yang ada dalam blok FOR ditulis lebih masuk (indent) sampai bertemu END IF. Script perintah dalam sebuah blok selalu diberi indent. Hal ini memang merepotkan dalam menulis script, tetapi memudahkan pembacaan. Mencari penyebab error dan memperbaikinya membutuhkan proses membaca yang teliti, dan penyusunan seperti demikian (walau merepotkan awalnya) bisa memberi manfaat yang banyak. Penyusunan blok ter indent juga akan membuat script bisa mudah dipelajari oleh programmer lain. Wassalam, Kid. 2012/6/22 Leonardo Endry widodo <[email protected]> > >dari informasi yg sy dapatkan, saya mencoba utk m'buat scriptnya dan pada saat >di run terdapat error yaitu Next without For. >dari script yg coba sy buat, dimanakah letak kesalahannya (mav,masih newbie >otodidak) dilihat dari penulisan nama variabelnya >sudah sesuai dengan yg di deklarasikan. >berikut script : >=============================================================================================================================== >Sub MessageAlert() >Dim dtTglHariIni As Date >Dim rngDataKu As Range >Dim lbaris As Long >Set rngDataKu = Range("AK3:AK5000") > > > > >For lbaris = 3 To 5000 > If dtTglHariIni > dtTglHariIni - 1 And rngDataKu.Cells(lbaris - 2, >1).Value = "" Then > MsgAlert1 = MsgBox(" Cek nomor LS untuk hari kemarin karena nomor LS >belum ada", vbOKOnly + vbExclamation, "Cek Nomor LS") > ElseIf dtTglHariIni > dtTglHariIni - 2 And rngDataKu.Cells(lbaris - 2, >1).Value = "" Then > MsgAlert2 = MsgBox("Cek nomor LS untuk hari kemarin karena nomor LS >belum ada", vbOKOnly + vbExclamation, "Cek Nomor LS") >Next lbaris > > >End If >End Sub > >=============================================================================================================================== > >________________________________ > From: Kid Mr. <[email protected]> >To: [email protected] >Sent: Thursday, June 21, 2012 5:34 PM > >Subject: Re: [belajar-excel] Menampilkan message alert dengan kriteria tertentu > > > > >Sepertinya sudah dicoba dan sudah memahami dampak dari proses yang namanya >loop. > >Jadi loop akan mengulang-ulang proses. Loop dengan For Next, akan menambahkan >nilai dalam variabel yang digunakan pada baris For. > >Pada For lBaris=3 to 5000, maka nilai lBaris akan berubah dari 3 sampai 5000. >Loop dengan For Next diawali baris For bla = bli to blo dan diakhir Next bla >Script yang ada diantaranya akan diproses berulang-ulang. > >Ketika proses membutuhkan nilai-nilai yang turut bergerak dari 3 sampai 5000 >yang tersimpan dalam lBaris, maka variabel lBaris bisa digunakan. >Contoh proses IF pada baris : >IF dttglhariini > dttglhariini-1 AND rngdataku.cells(1,1).value = "" then >rngdataku inginnya akan dicek dari cell pertama (range dibaris 3) sampai range >terakhir di baris 5000. >Pada baris IF diatas, menggunakan cells( row, col) >Jadi row pada cells harus mulai dari 1, yaitu lbaris pertama dikurangi 2. >Maka IF dalam For Next akan berbentuk : >IF dttglhariini > dttglhariini-1 AND rngdataku.cells( lbaris - 2 ,1).value = >"" then > >Sampai sini, maka proses loop dari range baris 3 sampai baris 5000 excel telah >dilakukan. > >Kid. > > >2012/6/21 Kid Mr. <[email protected]> > >cells( row_index , column_index ) >>Nanti bisa diisi dengan varibale yang menyimpan data angka, kemudian nilai >>dalam variabel itu diganti melalui suatu proses loop. >> >>Misal : >>dim lBaris as long >>for lBaris=3 to 5000 >> >> IF dttglhariini > dttglhariini-1 AND rngdataku.cells(1,1).value = "" >>then >> 'dst >>next l >> >> >>Kid. >> >> >> >>2012/6/21 Leonardo Endry widodo <[email protected]> >> >> >>> >>> >>> >>>Kl sy coba artikan berarti untuk bagian rngdataku.cells(1,1).value = >>>"" harus dilakukan berulang kali sampai ke rngdataku.cells(n,n) ??? >>>atau bagaimana ? >>> >>>________________________________ >>> From: Kid Mr. <[email protected]> >>>To: [email protected] >>>Sent: Thursday, June 21, 2012 4:30 PM >>> >>>Subject: Re: [belajar-excel] Menampilkan message alert dengan kriteria >>>tertentu >>> >>> >>> >>> >>>oops salah... >>> >>>jika variabel today diberi () maka menjadi variabel array. >>> >>>Andai yang dimaksud adalah menyimpan sebuah data tanggal dalam sebuah >>>variabel, >>>dim dtTglHariIni as date >>>dttglhariini=date >>> >>>jika ingin menyimpan suatu object range dalam sebuah variabel, >>>dim rngDataKu as range >>>set rngdataku=range("e3:e5000") >>> >>>Kemudian, suatu kondisi IF dengan operator perbandingan sebuah nilai >>>misal membandingkan cell e3 dulu : >>>IF dttglhariini > dttglhariini-1 AND rngdataku.cells(1,1).value = "" then >>>dst >>> >>>Kid. >>> >>> >>>2012/6/21 Leonardo Endry widodo <[email protected]> >>> >>> >>>> >>>>Sudah dicoba ganti & dengan AND tetapi masih terdapat type mismatch pada >>>>tanda - >>>>Sub Test() >>>>Dim today() As Date >>>>Dim range As range >>>> >>>> >>>>If today() > today() - 1 and range("E3:e5000") = "" Then >>>>a = MsgBox("test") >>>>ElseIf today () > today() - 2 and range("e3:e5000") = "" Then >>>>b = MsgBox("test") >>>>Else: c = MsgBox("ok") >>>> >>>> >>>>End If >>>>End Sub >>>> >>>> >>>> >>>>________________________________ >>>> From: Kid Mr. <[email protected]> >>>>To: [email protected] >>>>Sent: Thursday, June 21, 2012 4:14 PM >>>>Subject: Re: [belajar-excel] Menampilkan message alert dengan kriteria >>>>tertentu >>>> >>>> >>>> >>>> >>>>Coba ganti & dengan AND >>>> >>>>Kid. >>>> >>>> >>>>2012/6/21 Leonardo Endry widodo <[email protected]> >>>> >>>> >>>>> >>>>>Kakak" yg ganteng" dan cantik", mohon bantuannya untuk menampilkan message >>>>>alert dengan kriteria tertentu >>>>>Sample file dan keterangan lainnya include didalamnya. >>>>> >>>>> >>>>>Terima Kasih. >>>> >>>> >>>> >>> >>> >>> >> > > >

