ini salah satu alternatif walau di pc lemot ngeklik stopnya sampek mangkel
 
Dim ngeloop As Boolean
 
Sub aaa() 'jalan
ngeloop = True
While ngeloop = True
Cells(1, 1) = Cells(1, 1) + 1
DoEvents '<kuncinya neh
Wend
End Sub
 
Sub bbb() 'setop
ngeloop = False
MsgBox "stop stop stop"
End Sub

----- Original Message -----
From: siti Vi
Sent: Tuesday, April 11, 2006 11:36 PM
Subject: ]] XL-mania [[ Gelas Acak Undi Arisan - Part Two

berhubung ada beberapa rekan yg menanyakan via japri, mengenai
kelanjutan "program" Acak Undi Arisan yg dulu pernah di posted ke milis,
dengan pertanyaan / permintaannya:  apakah tidak bisa dibuat tombol
untuk menSTOP pengacakan secara tiba-tiba ?
 
"menghentikan looping dengan tombol kapan saja kita mau" sudah siti
coba, tapi ndak pernah berhasil, karena sementara macro berjalan
tombol-tombol bikinan sendiri tidak bereaksi saat di-klik.
jadi mohon bantuan teman-teman bagaimana cara paling baik / lazim?
 
Selain dengan tombol, sebetulnya kita dapat memanfaatkan tombol ESCAPE
sebagai pengganti keinginan di atas.
Sementara ada macro sedang RUN, bila tombol Escape ditekan, dia akan
menginterupsi jalannya makro, menawarkan apakah macro mau dilanjutkan
atau mau dihentikan.
Tampilan msgBox seperti itu tentunya "bikin malu" pembuat macronya...
Tetapi interupsi seperti itu sebetulnya dapat dimanfaatkan untuk menghentikan
looping dengan mulus, tanpa menampilkan msgBox "malu-malu-in" tadi.
 
Penekanan tombol Escape, menghasilkan Error # 18.
Dengan bekal itu kita dapat memasang jebakan, kira-kira seperti ini:
 
   i = 1
   On Error GoTo STOPLoop
   Application.EnableCancelKey = xlErrorHandler

   Do    ' perulangan pengacakan data
      For x = 1 To nRow
         Randomize
         y = Int(Rnd * nRow) + 1
         temp = DAFACAK.Cells(x, 1)
         DafACAK.Cells(x, 1) = DafACAK.Cells(y, 1)
         DafACAK.Cells(y, 1) = temp
         Range("E6") = temp
      Next x
      i = i + 1
   STOPLoop:
      If Err = 18 Then i = 1000 + 1

   Loop Until i >= 1000
prinsipnya:
perulangan diberi batas counter yg cukup tinggi, misal 1000.
KALAU tiba-tiba terjadi penekanan ESC (yg menerbitkan Err = 18 ),
kita sudah siapkan instruksi : Nilai Batas counter diberi nilai MAXnya
(dalam contoh ini = 1001) yang menyebabkan looping berhenti
dengan terhormat, yaitu  tunduk kepada syarat yg ada, bukan oleh
msgBox yg "bikin malu" itu.
 
Anehnya: bila kita gunakan CommandButton yg diberi macro dengan
logika yg persis sama, kok ndak mau STOP, kenapa ya ?
 
Contoh terlampir, walaupun nyeTOPnya dengan [ESC] tetapi bisa buat
mengundi arisan, yang menang jangan lupa traktir baso ya...
 
kindest regards,
siti Vi.


+-:: XL-mania ::::::::::::::::::::----------------------------------+
|                                                                   |
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message,  melecehkan,  tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan  winzip  jika  perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke  |
| [EMAIL PROTECTED] atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/           |
+-------------------------------------------------------------------+
| Berikan testimoni Anda tentang XL-mania di :                      |
| http://www.friendster.com/profiles/xlmania                        |
+-------------------------------------------------------------------+



SPONSORED LINKS
Business application software Microsoft excel training Microsoft excel tutorial
Business application development Microsoft excel help Microsoft excel training course


YAHOO! GROUPS LINKS




Attachment: doevents.xls
Description: MS-Excel spreadsheet

Kirim email ke