nambo ciek...

Mas Hilman sudah menurunkan ilmu teknisnya.
Sekarang, kita bicarakan maksud dan tujuan digambarnya ProgressBar

Biasanya yg perlu diberi ProgressBar adalah proses yg memerlukan banyak step
atau juga proses yg diulang (dengan looping) dimana jumlah step nya dapat
dihitung
didekati / diperkirakan.

contoh yg mudah
Membaca data tabel cell by cell dengan diketahui dimensi tabelnya
( = banyaknya baris X banyaknya kolom)
katakan misalnya 2000 baris x 50 kolom;  2000 x 50 =  100.000 cells

Jika semua cell ingin di akses, ( barangkali dibaca untuk di copy atau
diproses dan
hasil prosesnya ingin ditulis di range lain);  maka akan terjadi 100 000
step

ProgessBar dapat kita beri nilai min = 0, dan nilail max = 100 000
Nantinya, setiap 1 (satu) step proses, nilai  ProgressBar  (yg semula  = 0)
kita naikkan 1

For R = 1 ro 2000
   For C = 1 to 50
*      Sheet5.Cellss(R, C) = Sheet1.Cells(R, C) & " telah diproses"*
*      N = N + 1*
*      ProgressBar = N*
   Next C
Next R

Dengan cara seperti itu, progress bar akan tampak "melaporkan" PROGRESS
(perkembangan
/ lajunya ) proses dari 0 sampai 100 000
Kalau peru di dalam progress bar bisa di tampakkan nilai percentege-nya

Saat Proses dimulai Progressbar = Kosong, dan Ketika proses selesai,
ProgressBar pas
menunjukkan PENUH.  Itulah INTI maksud sebuah ProgressBar !

Selama proses berjalan, user yg melihat  ProgressBar dapat mengetahui
gambaran kasar
*sudah sampai seberapa Progress-nya  dan masih seberapa LAGI proses yg
harus ditunggu.*
(kalau masih lama kita kan bisa tidur dulu, ya 'kan (ya iyya lah!)... he
he!)

Begitulah ProgressBar digambar dan disuruh JALAN, selain membebani excel &
 processor,
tapi ada manfaatnya

Progress bar buatan pak AdhiKarya Hasan, bagus buat latihan, tetapi untuk
proses menulis 3 cell
yg hanya memerlukan waktu sepersekian detik,  progressbar sebenarnya belum
diperlukan.
Progressbar yang ada, bukan merupakan laporan kemajuan / lajunya proses,
tetapi seperti kata
mas Hilman hanyalah animasi bar
Proses terjadinya Entri Data  vs proses terjadinya Animasi Bar tidak
sinkron; tetapi bergantian,
dan durasi / lamanya tidak sama (proses entri data hanya sepersekian dari
proses penampakan
pergerakan ISI progressbar.
Penggambaran AnimasiBar tetap membebani kerja excel dan prosessor tetapi
kurang manfaatnya

Sekali lagi untuk belajar,  semangat dan codingya sudah bagus
Kami yakin pada saat lain / untk proses pekerjaan lain, pak Adhikarya Hasan
akan bisa membuat
*progressbar **yg memberi "laporan progress" atas *suatu proses yg sedang
dijalankan.

Salam kompaks  beExcellers
- i -
*
*
* ~belajar excel ? ...gak bakal nyesel !*




2011/12/30 Hilman <[email protected]>

> **
>
> 1. Penyebab error nya karena ProgressBar1.Max = 10000 yang anda simpan
> pada prosedur UserForm_Load tidak pernah dieksekusi, karena pada VBA tidak
> mengenal Event UserForm_Load, melainkan UserForm_Initialize
>
> Private Sub UserForm_Load()
>     Dim i As Integer
>     ProgressBar1.Max = 10000
>     ProgressBar1.Min = 1
> End Sub
>
> Diganti dengan,
> Private Sub UserForm_Initialize()
>     ProgressBar1.Max = 10000
>     ProgressBar1.Min = 1
> End Sub
>
> 2. Kalau dilihat, ini mah bukan progress bar, tapi animation bar karena
> fungsinya hanya untuk menimbulkan efek animasi pada  saat proses
> penyimpanan (memindahkan data dari user form ke area excel.
>
> 3. Sedikit koreksi pada bagian
>
>     For i = 1 To 10000
>         i = i + 1
>         ProgressBar1.Value = i
>     Next i
>
>     sepertinya pada line i = i + 1 tsb tidak perlu, karena jika
> menggunakan loop For...Next maka secara otomatis nilai i akan bertambah 1.
> Jadi dengan adanya i = i + 1 nilai i nya akan bertambah 2 setiap loop nya.
>
>
>
>   ------------------------------
> *From:* PT. ADHI KARYA (PERSERO) Tbk <[email protected]>
> *Sent:* Friday, December 30, 2011 7:51 AM
>
> Para pakar XL, kasih adonan utnuk bikin progressbar dong, karena yang saya
> bikin nih error terus (file terlampir)..
> Mohon korksi resepnya dari para senior...
> Terima kasih sebelumnya...
>
> *HASANNUDIN*
> *Tax Officer - Riau - Kepri - Sumbar Are*a**
>

Kirim email ke