Selasa, 27 Maret 2012

[belajar-excel] Digest Number 1565

Messages In This Digest (6 Messages)

1a.
Re: Message box Ok Cancel From: cuma.milis@gmail.com
1b.
Re: Message box Ok Cancel From: cuma.milis@gmail.com
1c.
Re: Message box Ok Cancel From: Kid Mr.
1d.
Re: Message box Ok Cancel From: summonery
1e.
Re: Message box Ok Cancel From: Kid Mr.
2.
Mempercepat proses macro From: cuma.milis@gmail.com

Messages

1a.

Re: Message box Ok Cancel

Posted by: "cuma.milis@gmail.com" cuma.milis@gmail.com

Mon Mar 26, 2012 6:14 am (PDT)



terima kasih lagi ya mba
penjelasan mba rara sangat mencerahkan + test drive semlm bermain2 dengan deklarasi public dan dim

------- Original message -------
> From: Rara Wilis <ra2wilis@gmail.com>
> To: belajar-excel@yahoogroups.com
>
> maaf, koreksi ada yg salah fatal:
>
> tertulis
>
> Lingkup Berlakunya VARIABLEs dan CONSTANTs
> Variable ataupun Konstanta yg dideklarasikan pada level (di dalam sebuah) Prosedur
> Jika di deklarasikan dengan statement Dim / Private
> ( Dim NamaVariable as TiPeData )
> akan berlaku dan dikenal di modul tsb ( di semua Prosedur yg berada di Module tsb)
>
>
> seharusnya:
>
> Lingkup Berlakunya VARIABLEs dan CONSTANTs
>
> Variable ataupun Konstanta yg dideklarasikan pada level (di dalam sebuah) MODULE
> Jika di deklarasikan dengan statement Dim / Private
> ( Dim NamaVariable as TiPeData )
> akan berlaku dan dikenal di modul tsb ( di semua Prosedur yg berada di Module tsb)
>
>
>
>
> On Sun, Mar 25, 2012 at 3:38 PM, Rara Wilis <ra2wilis@gmail.com> wrote:
>> halo...
>> Ini kayaknya harus ngobrol mengenai : Ruang Lingkup Berlakunya,  dan Umur VARIABLE
>> Kita akan membicarakan hal yg terjadi di satu workbook saja dulu
>> ---------------- cut -------

1b.

Re: Message box Ok Cancel

Posted by: "cuma.milis@gmail.com" cuma.milis@gmail.com

Mon Mar 26, 2012 6:15 am (PDT)



terima kasih mba indri
saya sudah mencoba2 semlm + file dari mba.
saya sudah paham sekarang untuk penggunaan deklarasinya.

------- Original message -------
> From: i Haps <hapsari.stlizbeth@gmail.com>
> To: belajar-excel@yahoogroups.com
>
> mo Ikutan juga... biar seru...
>
> Data Type (tipe data) itu di semua bhs pemrograman sebenarnya hampir sama
> tetapi ada variasinya yg agak berbeda misalnya 
>
> ## bilangan bulat (integer) , utuh tidak mengandung pecahan
> di VBA di bagi bagi lagi menajdi 3 golongan
> Byte = hanya POSITIP 0 sampai 255   (alokasi memori 1 Byte)
> Short Integer (dinamai type Integer) = plus minus 32 ribuan (2 byte)
> Long Integer (dinamai type Long) = plus minus 2,14 milyar (4 byte)
>
> ## bilangan real (riil), bilangan nyata (plus minus, bisa mengandung pecahan)  
> di VBA dibagi menjadi 2 golongan
> Single, lengkapnya: Single-precision floating-point  (4 bytes)  dan 
> Double, atau lengkapnya: Double-precision floating-point) (8 bytes)
>
> Tabel dalam Sheet excel terlampir akan menjelaskan lebih rinci
> Mudah-mudahan banyak manfaat nya, minim modhorot nya..Amin...
>
> - i Haps -

1c.

Re: Message box Ok Cancel

Posted by: "Kid Mr." mr.nmkid@gmail.com   nmkid.family@ymail.com

Mon Mar 26, 2012 10:32 pm (PDT)



Ikutan lagi....

Dalam VB/VBA, mestinya sudah tahu bahwa ada kelompok-kelompok kelas.
Misal pada VBA Excel saja, ada kelompok di VBE (VB Editor)
1. object dari kelasnya Excel seperti Sheet1, Sheet2, ThisWorkbook
2. object dari kelasnya userform seperti UserForm1, UserForm2, dsb
3. object dari kelasnya general module seperti Module1,Module2, dsb
4. object dari kelasnya user class seperti Class1,class2, dsb

Untuk awalan, fokus dulu pada no 1 sampai 3 saja.
No 1 dan 2, pada dasarnya adalah object-object yang pendiam dan penyendiri,
yang sering disebut private.
No 3, pada dasarnya adalah object yang suka bersosialisasi, jadi enak
diajak ngobrol yang sering disebut public.

Sampai sini, sudah ada bayangan bahwa ada benda (object) yang memiliki
karakteristik private dan public.
Jadi, sebenarnya apa sih Public dan Private itu ? Apakah sekedar ruang
lingkup kerja ?
Kalau contoh diatas, maka yang tampak adalah private dan public itu
cenderung ke karakteristik sesuatu (object) dalam menyikapi lingkungannya.
Kalau begitu, apakah lingkungan dari contoh diatas ?
Lingkungannya adalah VBA Excel.
Maka, untuk memanfaatkan object itu, harus disertai memanggil namanya,
supaya si benda nengok dulu baru bisa diberi perintah.

Contoh :
Untuk mengaktifkan sebuah userform, maka bunyinya :
*UserForm1 *Show
>> Memerintahkan melalui Excel (lingkungan) yang jadi bosnya UserForm1
sehingga tahu cara memerintah si userform1 untuk tampil keatas panggung.

atau mau menggunakan range yang ada di sheet1 :
*sheet1*.range("x1:z9").activate
>> memerintah secara langsung kepada si sheet1 supaya memberi kesempatan
kepada pemanggil untuk mengaktifkan range x1:z9 yang dimiliki si sheet1.

Untuk hal seperti ini akan terkait erat dengan yang namanya object dan
karakteristiknya. Tapi ndak usah dipedulikan, karena bahasannya kali ini
tentang private, public dan dim yang cenderung dikenal sebagai ruang
lingkup kerja.
Tapi, dari contoh diatas, tampak jelas bahwa penggunaan apapun yang
dimiliki si object, harus pakai manggil namanya dulu. Mau pakai rangenya
sheet1, harus panggil dulu namanya sheet1. Setelah nengok, baru bisa beri
perintah. Itulah karakteristik private.

Untuk karakteristik public, ndak perlu pake panggil-panggil segala.

Setelah tahu ada kelompok yang demikian, maka yang perlu diketahui
berikutnya adalah adanya bentuk-bentuk blok program yang sering disebut
routine atau prosedur.

Prosedur ada yang jenisnya Sub atau Function (yang sering dipakai). Jadi
bukan Public Sub, Public Function, Private Sub, Private Function.
Masing-masing jenis prosedur, bisa diberi karakteristik respon terhadap
lingkungan jenis Private atau Public.
Dengan begitu, maka sering ditemui :
>> karakteristik Private
-- prosedur dengan karakteristik private tidak dapat dipergunakan oleh
siapapun selain pemiliknya (object tempat tinggalnya)
contoh 1 : (prosedur yang tinggal di sheet1, maka hanya bisa digunakan oleh
si sheet1 saja ~ bener-bener barang pribadinya si sheet1)
Private Sub Worksheet_Change(byval target as range)
yang sering dikenal sebagai prosedur event sub.
Disebut event karena prosedur ini juga akan aktif ketika ada kejadian
minimal sebuah cell di dalam worksheet yang mengalami pengubahan nilai.

contoh 2 : (prosedur yang tinggal di module umum seperti module1 yang
karakterisk si module itu public, tetapi tetap saja gak bisa dipakai oleh
selain module1)
Private Sub PersiapanCetak( rngData as range , lStatus as long )

>> karakteristik Public
Contoh 1 : (prosedur yang diletakkan di sheet1 misalnya berbunyi seperti
berikut ini)
Public Sub SetNilaiPesananSheetInput()
-- Prosedur ini diletakkan pada sebuah object sheet (misal di sheet1) yang
pada dasarnya berkarakteristik private.
-- Pemberian karakteristik public pada si prosedur, akan membuat prosedur
ini bisa digunakan oleh yang lainnya (misal oleh module1 atau userform1
dsb), selama yang mau make itu (module1 dsb itu) manggil yang punya dulu.

Contoh lengkapnya begini deh :
di sheet1, tulis :
public sub ProsedurPunyanyaSheet1()
msgbox "Aku adalah prosedur karakteristik public di lokasi sheet1
yang berkarakteristik private"
end sub

kemudian, di module1 (Insert Module kalau belum ada), tulis :
public sub PanggilProsedurDiSheet1Ahhh()
sheet1.ProsedurPunyanyaSheet1
end sub
jalankan prosedur PanggilProsedurDiSheet1Ahhh

Jika tulisan sheet1. dihapus dari baris sheet1.ProsedurPunyanyaSheet1 maka
si VBA akan protes.

Contoh 2 : (pada sebuah module umum lainnya -- misal module2 -- insert
module kalau belum ada)
public sub PanggilPunyanyaModule1Ahh()
PanggilProsedurDiSheet1Ahhh
end sub
lalu jalankan.

Akan tampak bahwa prosedur PanggilProsedurDiSheet1Ahhh yang diberi
karakterisik public dan tinggal di object module1 yang juga
karakteristiknya public, bisa dipanggil dan dipakai sewaktu-waktu.

Untuk jenis prosedur Function maka yang berubah adalah bentuk bloknya yang
tadinya sub jadi function disertai penetapan tipe data hasil dari function.
Baris End Sub akan jadi End Function.

Setelah rada bingung campur sedikit mudeng tentang public dan private pada
sebuah benda seperti module atau form atau sheet, kemudian rada paham
tentang public dan private pada sebuah prosedur baik sub atau function,
maka mulailah cerita tentang public dan private pada sebuah variabel.

Variabel juga bisa diberi karakteristik Public dan Private. Tapi, hanya
untuk variabel yang dideklarasikan diluar prosedur.
Untuk deklarasi variabel dalam sebuah prosedur, digunakan Dim.
Dim juga bisa digunakan untuk diluar prosedur, yang karakteristiknya akan
mirip dengan penggunaan Private. Tapi, sebaiknya tetap menggunakan Private
daripada Dim.

Cara deklarasi secara umum :
karakteristiknya nama_variabelnya AS tipedatanya

contoh : disebuah module umum bernama module1 (kalau belum ada module1,
lakukan Insert Module)
Option Explicit
Public rngKriteria as range
Public lNum AS Long
Private lRec AS Long

Public Sub CetakFaktur()
Dim rngData as Range
' ada baris perintah banyak disini, misal :
lNum = 1945
end sub

Maka,
A. variabel rngKriteria dan lNum akan dapat dipergunakan secara langsung
oleh siapapun dimanapun berada oleh prosedur apa saja selama tidak ada
module umum yang mendeklarasikan sama seperti yang dideklarasikan oleh
module1 karena :
1. module1 berkarakteristik Public
2. variabel dideklarasi dengan karakteristik Public

B. variabel lRec hanya dapat digunakan di module1 saja, pada seluruh
prosedurnya karena :
1. variabel dideklarasi dengan karakteristik Private

C. variabel rngData hanya dapat digunakan di prosedur CetakFaktur di
module1 saja. Prosedur lain, baik yang dalam module1 apalagi yang diluar
module1 tidak dapat menggunakannya karena :
1. variabel dideklarasi dengan karakteristik Dim dalam sebuah prosedur.

Bagaimana jika di Sheet1 ada prosedur berikut berikut ini :

Option Explicit

'ada prosedur untuk set nilai lnum juga
Public Sub SetVarLNumOlehSheet1()
lnum=1990
end sub

Pertanyaannya, lNum yang mana yang diset oleh prosedur SetVarLNumOlehSheet1
?
Tentu saja variabel lNum yang dideklarasi di Module1 di atas sana.

Jika isi sheet1 diubah menjadi : (lihat bagian bold)
Option Explicit
*Public lNum AS Long*

'ada prosedur untuk set nilai lnum juga
Public Sub SetVarLNumOlehSheet1()
lnum=2012
end sub

lNum yang mana yang diisi oleh prosedur SetVarLNumOlehSheet1 ?
Tentu saja lNum yang dideklarasikan di sheet1.
Lalu nilai lNum yang dideklarasikan di Module1 berapa nilainya ?
Jika prosedur CetakFaktur di module1 telah dijalankan, maka nilai lNum di
module1 adalah 1990.

Dari 2 contoh diatas, tampak bahwa deklarasi variabel dengan karakteristik
Public di sebuah module umum (module1 dalam contoh), tidak serta merta
bekerja disemua tempat. Bagaimana cara pakai kedua variabel itu ?

Misal dimodule2 (buat baru jika belum ada)
option explicit

public sub SetSemuaLNumOlehMod2()
module1.lnum=100
sheet1.lnum=3000
*msgbox "LNum di module1 = " & lnum & vbcrlf & "LNum di sheet1 = " &
sheet1.lnum*
end sub

Jadi, dengan memanggil secara spesifik pemilik variabelnya, varibel
berkarakteristik public bisa digunakan oleh pihak lain.
Tapi, *hati-hati dengan yang diwarna merah*. Disana ada proses memanfaatkan
nilai lnum tanpa memanggil pemiliknya.
Baris merah ini akan bekerja jika tidak ada module umum lainnya yang
mendeklarasikan Public lNum. Jika ada, maka akan error. Dan errornya bisa
dieliminir ketika bagian *& lNum* diganti menjadi *& module1.lnum*

Jika ingin mencoba, silakan buat module baru (misal module3) yang diisi
dengan :
Option Explicit
Public lNum as Long

Public Sub SetNilaiLNumDiMod3OlehMod3()
lNum=7500
end sub

Baris lNum=7500 akan mengisi varibel lNum di module3 dengan 7500
Kemudian coba run prosedur SetSemuaLNumOlehMod2 yang ada di module2. Jika
error, ganti bagian *& lNum* diganti menjadi *& module1.lnum *dan run lagi.

Dari beberapa contoh ini, maka bisa diketahui bahwa setiap object class
bisa mendeklarasikan variabel Public,Private, atau Dim, dan akan
diperlakukan sendiri-sendiri sesuai pendeklarator variabelnya. Object class
lainnya bisa menggunakan milik object class tertentu secara benar jika
disertai pemanggilan nama pendeklarator variabelnya.

Secara umum, biasanya deklarasi sebuah variabel dilakukan untuk mewakili
satu varibel yang langsung ditentukan akan digunakan dimana saja.
Misal, di module1 dideklarasikan :
Public rngInput as range

Maka diobject class manapun tidak akan ditemukan lagi deklarasi seperti
itu. Penggunaan rngInput bisa digunakan oleh object class lain (sheet1,
userform1, module1,dsb) secara langsung.

Secara garis besar, menentukan variabel adalah tergantung intensitas
penggunaannya. Misal, rngdata yang merujuk ke Sheet7 di range A1:G19 akan
selalu digunakan disetiap proses yang prosedur prosesnya bisa ada di
sheet1, module3, userform5 dsb, maka cukup dideklarasikan di sebuah module
umum (misal module1) kemudian digunakan oleh semua prosedur.

Jika ternyata ada prosedur yang butuh rngInput tapi dengan isi range
merujuk ke hal yang berbeda dengan prosedur lainnya yang menggunakan
rngInput, maka dibuatlah sebuah variabel baru, misal Public rngInputLainnya
as range
Begitu seterusnya.

-----------------------

Contoh :
Sheet1 dan sheet3 butuh bekerja dengan range yang ada di sheet bernama Data
(misal sheet7) mulai range A1 diseluruh blok data kontinyunya
(currentregion)

Maka disebuah module umum (misal module1) ada bunyi :
Option Explicit
Public rngKu as range

di sheet1 ada prosedur :
public sub DataNamaSaja()
set rngKu = sheet7.range("a1").currentregion
'misal data nama adalah kolom B saja dan akan dicopy ke sheet13 mulai
range k1
rngku.resize(,1).offset(,1).copy sheet13.range("k1")
end sub

di sheet3 ada prosedur :
public sub DataUmurSaja()
set rngKu = sheet7.range("a1").currentregion
'misal data umur adalah kolom E saja dan akan dicopy ke sheet13 mulai
range j1
rngku.resize(,1).offset(,4).copy sheet13.range("j1")
end sub

Pada kedua prosedur yang ada di masing-masing sheet tidak ada deklarasi
rngKu lagi bukan ?
Contoh seperti inilah yang sering disebut bahwa Public dan Private adalah
berkaitan dengan ruang lingkup variabel.

------------------------

Jadi, Public dan Private bukan sekedar ruang lingkup variabel saja, tetapi
mencakup karakteristik akses pemakaian.
Hal ini berkaitan erat dengan cara komputer membaca sebuah data yang
melalui pointernya, bukan nama variabelnya. Tapi hal seperti pointer ini
ndak usah dipikirkan, biar jadi urusannya si komputer saja. ndak mumet kalo
mikirin pointer.

Moga-moga jadi bingung dan jadi punya imajinasi lain tentang variabel,
public, private dsb, sehingga selalu muncul rasa ingin tahu lebih banyak
lagi.

Wassalam,
Kid.

On Sun, Mar 25, 2012 at 15:43, Rara Wilis <ra2wilis@gmail.com> wrote:

> **
>
>
> maaf, koreksi ada yg salah fatal:
>
> tertulis
> *
> *
> *Lingkup Berlakunya VARIABLEs dan CONSTANTs*
>
> Variable ataupun Konstanta yg dideklarasikan pada level (di dalam sebuah)
> Prosedur
> Jika di deklarasikan dengan statement Dim / Private
> ( Dim NamaVariable as TiPeData )
> akan berlaku dan dikenal di modul tsb ( di semua Prosedur yg berada di
> Module tsb)
>
>
> seharusnya:
> *
> *
> *Lingkup Berlakunya VARIABLEs dan CONSTANTs*
>
> Variable ataupun Konstanta yg dideklarasikan pada level (di dalam sebuah)
> *MODULE*
> Jika di deklarasikan dengan statement Dim / Private
> ( Dim NamaVariable as TiPeData )
> akan berlaku dan dikenal di modul tsb ( di semua Prosedur yg berada di
> Module tsb)
>
>
>
>
> On Sun, Mar 25, 2012 at 3:38 PM, Rara Wilis <ra2wilis@gmail.com> wrote:
>
>> halo...
>> Ini kayaknya harus ngobrol mengenai : *Ruang Lingkup Berlakunya, dan
>> Umur VARIABLE*
>> Kita akan membicarakan hal yg terjadi di satu workbook saja dulu
>> ---------------- cut -------
>>
>
>
>
1d.

Re: Message box Ok Cancel

Posted by: "summonery" summonery@yahoo.com   summonery

Mon Mar 26, 2012 11:21 pm (PDT)



Moga-moga jadi bingung dan jadi punya imajinasi lain tentang
variabel,public, private dsb, sehingga selalu muncul rasa ingin tahu
lebih banyak
lagi.
Amiin...
>> karakteristik Private
-- prosedur dengan karakteristik private tidak dapat dipergunakan oleh
siapapun selain pemiliknya (object tempat tinggalnya)
Namun dengan memanggilnya dengan Run "NamaProsedurDiModuleYangLain" kita
dapat menjalankan suatu prosedur lain yang berada di module yang berbeda
meski prosedur yang dipanggil berkarasteristik private.

>semoga bermanfaat

--- In belajar-excel@yahoogroups.com, "Kid Mr." <mr.nmkid@...> wrote:
>
> Ikutan lagi....
>
> Dalam VB/VBA, mestinya sudah tahu bahwa ada kelompok-kelompok kelas.
> Misal pada VBA Excel saja, ada kelompok di VBE (VB Editor)
> 1. object dari kelasnya Excel seperti Sheet1, Sheet2, ThisWorkbook
> 2. object dari kelasnya userform seperti UserForm1, UserForm2, dsb
> 3. object dari kelasnya general module seperti Module1,Module2, dsb
> 4. object dari kelasnya user class seperti Class1,class2, dsb
>
> Untuk awalan, fokus dulu pada no 1 sampai 3 saja.
> No 1 dan 2, pada dasarnya adalah object-object yang pendiam dan
penyendiri,
> yang sering disebut private.
> No 3, pada dasarnya adalah object yang suka bersosialisasi, jadi enak
> diajak ngobrol yang sering disebut public.
>
> Sampai sini, sudah ada bayangan bahwa ada benda (object) yang memiliki
> karakteristik private dan public.
> Jadi, sebenarnya apa sih Public dan Private itu ? Apakah sekedar ruang
> lingkup kerja ?
> Kalau contoh diatas, maka yang tampak adalah private dan public itu
> cenderung ke karakteristik sesuatu (object) dalam menyikapi
lingkungannya.
> Kalau begitu, apakah lingkungan dari contoh diatas ?
> Lingkungannya adalah VBA Excel.
> Maka, untuk memanfaatkan object itu, harus disertai memanggil namanya,
> supaya si benda nengok dulu baru bisa diberi perintah.
>
> Contoh :
> Untuk mengaktifkan sebuah userform, maka bunyinya :
> *UserForm1 *Show
> >> Memerintahkan melalui Excel (lingkungan) yang jadi bosnya UserForm1
> sehingga tahu cara memerintah si userform1 untuk tampil keatas
panggung.
>
> atau mau menggunakan range yang ada di sheet1 :
> *sheet1*.range("x1:z9").activate
> >> memerintah secara langsung kepada si sheet1 supaya memberi
kesempatan
> kepada pemanggil untuk mengaktifkan range x1:z9 yang dimiliki si
sheet1.
>
> Untuk hal seperti ini akan terkait erat dengan yang namanya object dan
> karakteristiknya. Tapi ndak usah dipedulikan, karena bahasannya kali
ini
> tentang private, public dan dim yang cenderung dikenal sebagai ruang
> lingkup kerja.
> Tapi, dari contoh diatas, tampak jelas bahwa penggunaan apapun yang
> dimiliki si object, harus pakai manggil namanya dulu. Mau pakai
rangenya
> sheet1, harus panggil dulu namanya sheet1. Setelah nengok, baru bisa
beri
> perintah. Itulah karakteristik private.
>
> Untuk karakteristik public, ndak perlu pake panggil-panggil segala.
>
> Setelah tahu ada kelompok yang demikian, maka yang perlu diketahui
> berikutnya adalah adanya bentuk-bentuk blok program yang sering
disebut
> routine atau prosedur.
>
> Prosedur ada yang jenisnya Sub atau Function (yang sering dipakai).
Jadi
> bukan Public Sub, Public Function, Private Sub, Private Function.
> Masing-masing jenis prosedur, bisa diberi karakteristik respon
terhadap
> lingkungan jenis Private atau Public.
> Dengan begitu, maka sering ditemui :
> >> karakteristik Private
> -- prosedur dengan karakteristik private tidak dapat dipergunakan oleh
> siapapun selain pemiliknya (object tempat tinggalnya)
> contoh 1 : (prosedur yang tinggal di sheet1, maka hanya bisa digunakan
oleh
> si sheet1 saja ~ bener-bener barang pribadinya si sheet1)
> Private Sub Worksheet_Change(byval target as range)
> yang sering dikenal sebagai prosedur event sub.
> Disebut event karena prosedur ini juga akan aktif ketika ada kejadian
> minimal sebuah cell di dalam worksheet yang mengalami pengubahan
nilai.
>
> contoh 2 : (prosedur yang tinggal di module umum seperti module1 yang
> karakterisk si module itu public, tetapi tetap saja gak bisa dipakai
oleh
> selain module1)
> Private Sub PersiapanCetak( rngData as range , lStatus as long )
>
> >> karakteristik Public
> Contoh 1 : (prosedur yang diletakkan di sheet1 misalnya berbunyi
seperti
> berikut ini)
> Public Sub SetNilaiPesananSheetInput()
> -- Prosedur ini diletakkan pada sebuah object sheet (misal di sheet1)
yang
> pada dasarnya berkarakteristik private.
> -- Pemberian karakteristik public pada si prosedur, akan membuat
prosedur
> ini bisa digunakan oleh yang lainnya (misal oleh module1 atau
userform1
> dsb), selama yang mau make itu (module1 dsb itu) manggil yang punya
dulu.
>
> Contoh lengkapnya begini deh :
> di sheet1, tulis :
> public sub ProsedurPunyanyaSheet1()
> msgbox "Aku adalah prosedur karakteristik public di lokasi
sheet1
> yang berkarakteristik private"
> end sub
>
> kemudian, di module1 (Insert Module kalau belum ada), tulis :
> public sub PanggilProsedurDiSheet1Ahhh()
> sheet1.ProsedurPunyanyaSheet1
> end sub
> jalankan prosedur PanggilProsedurDiSheet1Ahhh
>
> Jika tulisan sheet1. dihapus dari baris sheet1.ProsedurPunyanyaSheet1
maka
> si VBA akan protes.
>
> Contoh 2 : (pada sebuah module umum lainnya -- misal module2 -- insert
> module kalau belum ada)
> public sub PanggilPunyanyaModule1Ahh()
> PanggilProsedurDiSheet1Ahhh
> end sub
> lalu jalankan.
>
> Akan tampak bahwa prosedur PanggilProsedurDiSheet1Ahhh yang diberi
> karakterisik public dan tinggal di object module1 yang juga
> karakteristiknya public, bisa dipanggil dan dipakai sewaktu-waktu.
>
>
> Untuk jenis prosedur Function maka yang berubah adalah bentuk bloknya
yang
> tadinya sub jadi function disertai penetapan tipe data hasil dari
function.
> Baris End Sub akan jadi End Function.
>
> Setelah rada bingung campur sedikit mudeng tentang public dan private
pada
> sebuah benda seperti module atau form atau sheet, kemudian rada paham
> tentang public dan private pada sebuah prosedur baik sub atau
function,
> maka mulailah cerita tentang public dan private pada sebuah variabel.
>
> Variabel juga bisa diberi karakteristik Public dan Private. Tapi,
hanya
> untuk variabel yang dideklarasikan diluar prosedur.
> Untuk deklarasi variabel dalam sebuah prosedur, digunakan Dim.
> Dim juga bisa digunakan untuk diluar prosedur, yang karakteristiknya
akan
> mirip dengan penggunaan Private. Tapi, sebaiknya tetap menggunakan
Private
> daripada Dim.
>
> Cara deklarasi secara umum :
> karakteristiknya nama_variabelnya AS tipedatanya
>
> contoh : disebuah module umum bernama module1 (kalau belum ada
module1,
> lakukan Insert Module)
> Option Explicit
> Public rngKriteria as range
> Public lNum AS Long
> Private lRec AS Long
>
> Public Sub CetakFaktur()
> Dim rngData as Range
> ' ada baris perintah banyak disini, misal :
> lNum = 1945
> end sub
>
> Maka,
> A. variabel rngKriteria dan lNum akan dapat dipergunakan secara
langsung
> oleh siapapun dimanapun berada oleh prosedur apa saja selama tidak ada
> module umum yang mendeklarasikan sama seperti yang dideklarasikan oleh
> module1 karena :
> 1. module1 berkarakteristik Public
> 2. variabel dideklarasi dengan karakteristik Public
>
> B. variabel lRec hanya dapat digunakan di module1 saja, pada seluruh
> prosedurnya karena :
> 1. variabel dideklarasi dengan karakteristik Private
>
> C. variabel rngData hanya dapat digunakan di prosedur CetakFaktur di
> module1 saja. Prosedur lain, baik yang dalam module1 apalagi yang
diluar
> module1 tidak dapat menggunakannya karena :
> 1. variabel dideklarasi dengan karakteristik Dim dalam sebuah
prosedur.
>
>
> Bagaimana jika di Sheet1 ada prosedur berikut berikut ini :
>
> Option Explicit
>
> 'ada prosedur untuk set nilai lnum juga
> Public Sub SetVarLNumOlehSheet1()
> lnum=1990
> end sub
>
> Pertanyaannya, lNum yang mana yang diset oleh prosedur
SetVarLNumOlehSheet1
> ?
> Tentu saja variabel lNum yang dideklarasi di Module1 di atas sana.
>
> Jika isi sheet1 diubah menjadi : (lihat bagian bold)
> Option Explicit
> *Public lNum AS Long*
>
> 'ada prosedur untuk set nilai lnum juga
> Public Sub SetVarLNumOlehSheet1()
> lnum=2012
> end sub
>
> lNum yang mana yang diisi oleh prosedur SetVarLNumOlehSheet1 ?
> Tentu saja lNum yang dideklarasikan di sheet1.
> Lalu nilai lNum yang dideklarasikan di Module1 berapa nilainya ?
> Jika prosedur CetakFaktur di module1 telah dijalankan, maka nilai lNum
di
> module1 adalah 1990.
>
> Dari 2 contoh diatas, tampak bahwa deklarasi variabel dengan
karakteristik
> Public di sebuah module umum (module1 dalam contoh), tidak serta merta
> bekerja disemua tempat. Bagaimana cara pakai kedua variabel itu ?
>
> Misal dimodule2 (buat baru jika belum ada)
> option explicit
>
> public sub SetSemuaLNumOlehMod2()
> module1.lnum=100
> sheet1.lnum=3000
> *msgbox "LNum di module1 = " & lnum & vbcrlf & "LNum di sheet1
= " &
> sheet1.lnum*
> end sub
>
> Jadi, dengan memanggil secara spesifik pemilik variabelnya, varibel
> berkarakteristik public bisa digunakan oleh pihak lain.
> Tapi, *hati-hati dengan yang diwarna merah*. Disana ada proses
memanfaatkan
> nilai lnum tanpa memanggil pemiliknya.
> Baris merah ini akan bekerja jika tidak ada module umum lainnya yang
> mendeklarasikan Public lNum. Jika ada, maka akan error. Dan errornya
bisa
> dieliminir ketika bagian *& lNum* diganti menjadi *& module1.lnum*
>
> Jika ingin mencoba, silakan buat module baru (misal module3) yang
diisi
> dengan :
> Option Explicit
> Public lNum as Long
>
> Public Sub SetNilaiLNumDiMod3OlehMod3()
> lNum=7500
> end sub
>
> Baris lNum=7500 akan mengisi varibel lNum di module3 dengan 7500
> Kemudian coba run prosedur SetSemuaLNumOlehMod2 yang ada di module2.
Jika
> error, ganti bagian *& lNum* diganti menjadi *& module1.lnum *dan run
lagi.
>
> Dari beberapa contoh ini, maka bisa diketahui bahwa setiap object
class
> bisa mendeklarasikan variabel Public,Private, atau Dim, dan akan
> diperlakukan sendiri-sendiri sesuai pendeklarator variabelnya. Object
class
> lainnya bisa menggunakan milik object class tertentu secara benar jika
> disertai pemanggilan nama pendeklarator variabelnya.
>
> Secara umum, biasanya deklarasi sebuah variabel dilakukan untuk
mewakili
> satu varibel yang langsung ditentukan akan digunakan dimana saja.
> Misal, di module1 dideklarasikan :
> Public rngInput as range
>
> Maka diobject class manapun tidak akan ditemukan lagi deklarasi
seperti
> itu. Penggunaan rngInput bisa digunakan oleh object class lain
(sheet1,
> userform1, module1,dsb) secara langsung.
>
> Secara garis besar, menentukan variabel adalah tergantung intensitas
> penggunaannya. Misal, rngdata yang merujuk ke Sheet7 di range A1:G19
akan
> selalu digunakan disetiap proses yang prosedur prosesnya bisa ada di
> sheet1, module3, userform5 dsb, maka cukup dideklarasikan di sebuah
module
> umum (misal module1) kemudian digunakan oleh semua prosedur.
>
> Jika ternyata ada prosedur yang butuh rngInput tapi dengan isi range
> merujuk ke hal yang berbeda dengan prosedur lainnya yang menggunakan
> rngInput, maka dibuatlah sebuah variabel baru, misal Public
rngInputLainnya
> as range
> Begitu seterusnya.
>
> -----------------------
>
> Contoh :
> Sheet1 dan sheet3 butuh bekerja dengan range yang ada di sheet bernama
Data
> (misal sheet7) mulai range A1 diseluruh blok data kontinyunya
> (currentregion)
>
> Maka disebuah module umum (misal module1) ada bunyi :
> Option Explicit
> Public rngKu as range
>
> di sheet1 ada prosedur :
> public sub DataNamaSaja()
> set rngKu = sheet7.range("a1").currentregion
> 'misal data nama adalah kolom B saja dan akan dicopy ke sheet13
mulai
> range k1
> rngku.resize(,1).offset(,1).copy sheet13.range("k1")
> end sub
>
> di sheet3 ada prosedur :
> public sub DataUmurSaja()
> set rngKu = sheet7.range("a1").currentregion
> 'misal data umur adalah kolom E saja dan akan dicopy ke sheet13
mulai
> range j1
> rngku.resize(,1).offset(,4).copy sheet13.range("j1")
> end sub
>
> Pada kedua prosedur yang ada di masing-masing sheet tidak ada
deklarasi
> rngKu lagi bukan ?
> Contoh seperti inilah yang sering disebut bahwa Public dan Private
adalah
> berkaitan dengan ruang lingkup variabel.
>
> ------------------------
>
> Jadi, Public dan Private bukan sekedar ruang lingkup variabel saja,
tetapi
> mencakup karakteristik akses pemakaian.
> Hal ini berkaitan erat dengan cara komputer membaca sebuah data yang
> melalui pointernya, bukan nama variabelnya. Tapi hal seperti pointer
ini
> ndak usah dipikirkan, biar jadi urusannya si komputer saja. ndak mumet
kalo
> mikirin pointer.
>
> Moga-moga jadi bingung dan jadi punya imajinasi lain tentang variabel,
> public, private dsb, sehingga selalu muncul rasa ingin tahu lebih
banyak
> lagi.
>
> Wassalam,
> Kid.
>
> On Sun, Mar 25, 2012 at 15:43, Rara Wilis ra2wilis@... wrote:
>
> > **
> >
> >
> > maaf, koreksi ada yg salah fatal:
> >
> > tertulis
> > *
> > *
> > *Lingkup Berlakunya VARIABLEs dan CONSTANTs*
> >
> > Variable ataupun Konstanta yg dideklarasikan pada level (di dalam
sebuah)
> > Prosedur
> > Jika di deklarasikan dengan statement Dim / Private
> > ( Dim NamaVariable as TiPeData )
> > akan berlaku dan dikenal di modul tsb ( di semua Prosedur yg berada
di
> > Module tsb)
> >
> >
> > seharusnya:
> > *
> > *
> > *Lingkup Berlakunya VARIABLEs dan CONSTANTs*
> >
> > Variable ataupun Konstanta yg dideklarasikan pada level (di dalam
sebuah)
> > *MODULE*
> > Jika di deklarasikan dengan statement Dim / Private
> > ( Dim NamaVariable as TiPeData )
> > akan berlaku dan dikenal di modul tsb ( di semua Prosedur yg berada
di
> > Module tsb)
> >
> >
> >
> >
> > On Sun, Mar 25, 2012 at 3:38 PM, Rara Wilis ra2wilis@... wrote:
> >
> >> halo...
> >> Ini kayaknya harus ngobrol mengenai : *Ruang Lingkup Berlakunya,
dan
> >> Umur VARIABLE*
> >> Kita akan membicarakan hal yg terjadi di satu workbook saja dulu
> >> ---------------- cut -------
> >>
> >
> >
> >
>

1e.

Re: Message box Ok Cancel

Posted by: "Kid Mr." mr.nmkid@gmail.com   nmkid.family@ymail.com

Mon Mar 26, 2012 11:51 pm (PDT)



Nah ini ada tambahan dari Pak Anton,
menggunakan fungsi Run
dengan syntax :
Run "namaprosedurnya"

Dalam pembahasan yang lalu, telah dikenalkan tentang Public dan Private.
Dengan karakteristik public dan private itu, maka dimungkinkan membuat
module yang nama-nama prosedur dan variabelnya antar module atau malah
antar object class yang sama.

Misal, ada 2 prosedur berkarakteristik private di module1 dan module5 yang
namanya sama yaitu Cetak
Maka dari module7 bisa dilakukan pemanggilan prosedur cetak secara
berurutan mulai dari cetak menurut proses di module1 diikuti cetak menurut
proses di module5 sebagai berikut :

'dimodule 7 ada prosedur ini
public sub CetakSemua()
Run "module1.cetak"
Run "module5.cetak"
end sub

Jadi penggunaan prosedur private yang ada dimodule lain adalah melalui
sebuah fungsi VBA bernama Run

Wassalam,
Kid.
On Tue, Mar 27, 2012 at 13:21, summonery <summonery@yahoo.com> wrote:

> **
>
>
> Moga-moga jadi bingung dan jadi punya imajinasi lain tentang variabel,
> public, private dsb, sehingga selalu muncul rasa ingin tahu lebih banyak
> lagi.
>
> Amiin...
>
> >> karakteristik Private
> -- prosedur dengan karakteristik private tidak dapat dipergunakan oleh
> siapapun selain pemiliknya (object tempat tinggalnya)
>
> Namun dengan memanggilnya dengan Run "NamaProsedurDiModuleYangLain" kita
> dapat menjalankan suatu prosedur lain yang berada di module yang berbeda
> meski prosedur yang dipanggil berkarasteristik private.
>
>
> >semoga bermanfaat
>
>
> --- In belajar-excel@yahoogroups.com, "Kid Mr." <mr.nmkid@...> wrote:
> >
> > Ikutan lagi....
> >
> > Dalam VB/VBA, mestinya sudah tahu bahwa ada kelompok-kelompok kelas.
> > Misal pada VBA Excel saja, ada kelompok di VBE (VB Editor)
> > 1. object dari kelasnya Excel seperti Sheet1, Sheet2, ThisWorkbook
> > 2. object dari kelasnya userform seperti UserForm1, UserForm2, dsb
> > 3. object dari kelasnya general module seperti Module1,Module2, dsb
> > 4. object dari kelasnya user class seperti Class1,class2, dsb
> >
> > Untuk awalan, fokus dulu pada no 1 sampai 3 saja.
> > No 1 dan 2, pada dasarnya adalah object-object yang pendiam dan
> penyendiri,
> > yang sering disebut private.
> > No 3, pada dasarnya adalah object yang suka bersosialisasi, jadi enak
> > diajak ngobrol yang sering disebut public.
> >
> > Sampai sini, sudah ada bayangan bahwa ada benda (object) yang memiliki
> > karakteristik private dan public.
> > Jadi, sebenarnya apa sih Public dan Private itu ? Apakah sekedar ruang
> > lingkup kerja ?
> > Kalau contoh diatas, maka yang tampak adalah private dan public itu
> > cenderung ke karakteristik sesuatu (object) dalam menyikapi
> lingkungannya.
> > Kalau begitu, apakah lingkungan dari contoh diatas ?
> > Lingkungannya adalah VBA Excel.
> > Maka, untuk memanfaatkan object itu, harus disertai memanggil namanya,
> > supaya si benda nengok dulu baru bisa diberi perintah.
> >
> > Contoh :
> > Untuk mengaktifkan sebuah userform, maka bunyinya :
> > *UserForm1 *Show
>
> > >> Memerintahkan melalui Excel (lingkungan) yang jadi bosnya UserForm1
> > sehingga tahu cara memerintah si userform1 untuk tampil keatas panggung.
> >
> > atau mau menggunakan range yang ada di sheet1 :
> > *sheet1*.range("x1:z9").activate
>
> > >> memerintah secara langsung kepada si sheet1 supaya memberi kesempatan
> > kepada pemanggil untuk mengaktifkan range x1:z9 yang dimiliki si sheet1.
> >
> > Untuk hal seperti ini akan terkait erat dengan yang namanya object dan
> > karakteristiknya. Tapi ndak usah dipedulikan, karena bahasannya kali ini
> > tentang private, public dan dim yang cenderung dikenal sebagai ruang
> > lingkup kerja.
> > Tapi, dari contoh diatas, tampak jelas bahwa penggunaan apapun yang
> > dimiliki si object, harus pakai manggil namanya dulu. Mau pakai rangenya
> > sheet1, harus panggil dulu namanya sheet1. Setelah nengok, baru bisa beri
> > perintah. Itulah karakteristik private.
> >
> > Untuk karakteristik public, ndak perlu pake panggil-panggil segala.
> >
> > Setelah tahu ada kelompok yang demikian, maka yang perlu diketahui
> > berikutnya adalah adanya bentuk-bentuk blok program yang sering disebut
> > routine atau prosedur.
> >
> > Prosedur ada yang jenisnya Sub atau Function (yang sering dipakai). Jadi
> > bukan Public Sub, Public Function, Private Sub, Private Function.
> > Masing-masing jenis prosedur, bisa diberi karakteristik respon terhadap
> > lingkungan jenis Private atau Public.
> > Dengan begitu, maka sering ditemui :
> > >> karakteristik Private
> > -- prosedur dengan karakteristik private tidak dapat dipergunakan oleh
> > siapapun selain pemiliknya (object tempat tinggalnya)
> > contoh 1 : (prosedur yang tinggal di sheet1, maka hanya bisa digunakan
> oleh
> > si sheet1 saja ~ bener-bener barang pribadinya si sheet1)
> > Private Sub Worksheet_Change(byval target as range)
> > yang sering dikenal sebagai prosedur event sub.
> > Disebut event karena prosedur ini juga akan aktif ketika ada kejadian
> > minimal sebuah cell di dalam worksheet yang mengalami pengubahan nilai.
> >
> > contoh 2 : (prosedur yang tinggal di module umum seperti module1 yang
> > karakterisk si module itu public, tetapi tetap saja gak bisa dipakai oleh
> > selain module1)
> > Private Sub PersiapanCetak( rngData as range , lStatus as long )
> >
> > >> karakteristik Public
> > Contoh 1 : (prosedur yang diletakkan di sheet1 misalnya berbunyi seperti
> > berikut ini)
> > Public Sub SetNilaiPesananSheetInput()
> > -- Prosedur ini diletakkan pada sebuah object sheet (misal di sheet1)
> yang
> > pada dasarnya berkarakteristik private.
> > -- Pemberian karakteristik public pada si prosedur, akan membuat prosedur
> > ini bisa digunakan oleh yang lainnya (misal oleh module1 atau userform1
> > dsb), selama yang mau make itu (module1 dsb itu) manggil yang punya dulu.
> >
> > Contoh lengkapnya begini deh :
> > di sheet1, tulis :
> > public sub ProsedurPunyanyaSheet1()
> > msgbox "Aku adalah prosedur karakteristik public di lokasi sheet1
> > yang berkarakteristik private"
> > end sub
> >
> > kemudian, di module1 (Insert Module kalau belum ada), tulis :
> > public sub PanggilProsedurDiSheet1Ahhh()
> > sheet1.ProsedurPunyanyaSheet1
> > end sub
> > jalankan prosedur PanggilProsedurDiSheet1Ahhh
> >
> > Jika tulisan sheet1. dihapus dari baris sheet1.ProsedurPunyanyaSheet1
> maka
> > si VBA akan protes.
> >
> > Contoh 2 : (pada sebuah module umum lainnya -- misal module2 -- insert
> > module kalau belum ada)
> > public sub PanggilPunyanyaModule1Ahh()
> > PanggilProsedurDiSheet1Ahhh
> > end sub
> > lalu jalankan.
> >
> > Akan tampak bahwa prosedur PanggilProsedurDiSheet1Ahhh yang diberi
> > karakterisik public dan tinggal di object module1 yang juga
> > karakteristiknya public, bisa dipanggil dan dipakai sewaktu-waktu.
> >
> >
> > Untuk jenis prosedur Function maka yang berubah adalah bentuk bloknya
> yang
> > tadinya sub jadi function disertai penetapan tipe data hasil dari
> function.
> > Baris End Sub akan jadi End Function.
> >
> > Setelah rada bingung campur sedikit mudeng tentang public dan private
> pada
> > sebuah benda seperti module atau form atau sheet, kemudian rada paham
> > tentang public dan private pada sebuah prosedur baik sub atau function,
> > maka mulailah cerita tentang public dan private pada sebuah variabel.
> >
> > Variabel juga bisa diberi karakteristik Public dan Private. Tapi, hanya
> > untuk variabel yang dideklarasikan diluar prosedur.
> > Untuk deklarasi variabel dalam sebuah prosedur, digunakan Dim.
> > Dim juga bisa digunakan untuk diluar prosedur, yang karakteristiknya akan
> > mirip dengan penggunaan Private. Tapi, sebaiknya tetap menggunakan
> Private
> > daripada Dim.
> >
> > Cara deklarasi secara umum :
> > karakteristiknya nama_variabelnya AS tipedatanya
> >
> > contoh : disebuah module umum bernama module1 (kalau belum ada module1,
> > lakukan Insert Module)
> > Option Explicit
> > Public rngKriteria as range
> > Public lNum AS Long
> > Private lRec AS Long
> >
> > Public Sub CetakFaktur()
> > Dim rngData as Range
> > ' ada baris perintah banyak disini, misal :
> > lNum = 1945
> > end sub
> >
> > Maka,
> > A. variabel rngKriteria dan lNum akan dapat dipergunakan secara langsung
> > oleh siapapun dimanapun berada oleh prosedur apa saja selama tidak ada
> > module umum yang mendeklarasikan sama seperti yang dideklarasikan oleh
> > module1 karena :
> > 1. module1 berkarakteristik Public
> > 2. variabel dideklarasi dengan karakteristik Public
> >
> > B. variabel lRec hanya dapat digunakan di module1 saja, pada seluruh
> > prosedurnya karena :
> > 1. variabel dideklarasi dengan karakteristik Private
> >
> > C. variabel rngData hanya dapat digunakan di prosedur CetakFaktur di
> > module1 saja. Prosedur lain, baik yang dalam module1 apalagi yang diluar
> > module1 tidak dapat menggunakannya karena :
> > 1. variabel dideklarasi dengan karakteristik Dim dalam sebuah prosedur.
> >
> >
> > Bagaimana jika di Sheet1 ada prosedur berikut berikut ini :
> >
> > Option Explicit
> >
> > 'ada prosedur untuk set nilai lnum juga
> > Public Sub SetVarLNumOlehSheet1()
> > lnum=1990
> > end sub
> >
> > Pertanyaannya, lNum yang mana yang diset oleh prosedur
> SetVarLNumOlehSheet1
> > ?
> > Tentu saja variabel lNum yang dideklarasi di Module1 di atas sana.
> >
> > Jika isi sheet1 diubah menjadi : (lihat bagian bold)
> > Option Explicit
> > *Public lNum AS Long*
>
> >
> > 'ada prosedur untuk set nilai lnum juga
> > Public Sub SetVarLNumOlehSheet1()
> > lnum=2012
> > end sub
> >
> > lNum yang mana yang diisi oleh prosedur SetVarLNumOlehSheet1 ?
> > Tentu saja lNum yang dideklarasikan di sheet1.
> > Lalu nilai lNum yang dideklarasikan di Module1 berapa nilainya ?
> > Jika prosedur CetakFaktur di module1 telah dijalankan, maka nilai lNum di
> > module1 adalah 1990.
> >
> > Dari 2 contoh diatas, tampak bahwa deklarasi variabel dengan
> karakteristik
> > Public di sebuah module umum (module1 dalam contoh), tidak serta merta
> > bekerja disemua tempat. Bagaimana cara pakai kedua variabel itu ?
> >
> > Misal dimodule2 (buat baru jika belum ada)
> > option explicit
> >
> > public sub SetSemuaLNumOlehMod2()
> > module1.lnum=100
> > sheet1.lnum=3000
> > *msgbox "LNum di module1 = " & lnum & vbcrlf & "LNum di sheet1 = " &
> > sheet1.lnum*
>
> > end sub
> >
> > Jadi, dengan memanggil secara spesifik pemilik variabelnya, varibel
> > berkarakteristik public bisa digunakan oleh pihak lain.
> > Tapi, *hati-hati dengan yang diwarna merah*. Disana ada proses
> memanfaatkan
>
> > nilai lnum tanpa memanggil pemiliknya.
> > Baris merah ini akan bekerja jika tidak ada module umum lainnya yang
> > mendeklarasikan Public lNum. Jika ada, maka akan error. Dan errornya bisa
> > dieliminir ketika bagian *& lNum* diganti menjadi *& module1.lnum*
>
> >
> > Jika ingin mencoba, silakan buat module baru (misal module3) yang diisi
> > dengan :
> > Option Explicit
> > Public lNum as Long
> >
> > Public Sub SetNilaiLNumDiMod3OlehMod3()
> > lNum=7500
> > end sub
> >
> > Baris lNum=7500 akan mengisi varibel lNum di module3 dengan 7500
> > Kemudian coba run prosedur SetSemuaLNumOlehMod2 yang ada di module2. Jika
> > error, ganti bagian *& lNum* diganti menjadi *& module1.lnum *dan run
> lagi.
>
> >
> > Dari beberapa contoh ini, maka bisa diketahui bahwa setiap object class
> > bisa mendeklarasikan variabel Public,Private, atau Dim, dan akan
> > diperlakukan sendiri-sendiri sesuai pendeklarator variabelnya. Object
> class
> > lainnya bisa menggunakan milik object class tertentu secara benar jika
> > disertai pemanggilan nama pendeklarator variabelnya.
> >
> > Secara umum, biasanya deklarasi sebuah variabel dilakukan untuk mewakili
> > satu varibel yang langsung ditentukan akan digunakan dimana saja.
> > Misal, di module1 dideklarasikan :
> > Public rngInput as range
> >
> > Maka diobject class manapun tidak akan ditemukan lagi deklarasi seperti
> > itu. Penggunaan rngInput bisa digunakan oleh object class lain (sheet1,
> > userform1, module1,dsb) secara langsung.
> >
> > Secara garis besar, menentukan variabel adalah tergantung intensitas
> > penggunaannya. Misal, rngdata yang merujuk ke Sheet7 di range A1:G19 akan
> > selalu digunakan disetiap proses yang prosedur prosesnya bisa ada di
> > sheet1, module3, userform5 dsb, maka cukup dideklarasikan di sebuah
> module
> > umum (misal module1) kemudian digunakan oleh semua prosedur.
> >
> > Jika ternyata ada prosedur yang butuh rngInput tapi dengan isi range
> > merujuk ke hal yang berbeda dengan prosedur lainnya yang menggunakan
> > rngInput, maka dibuatlah sebuah variabel baru, misal Public
> rngInputLainnya
> > as range
> > Begitu seterusnya.
> >
> > -----------------------
> >
> > Contoh :
> > Sheet1 dan sheet3 butuh bekerja dengan range yang ada di sheet bernama
> Data
> > (misal sheet7) mulai range A1 diseluruh blok data kontinyunya
> > (currentregion)
> >
> > Maka disebuah module umum (misal module1) ada bunyi :
> > Option Explicit
> > Public rngKu as range
> >
> > di sheet1 ada prosedur :
> > public sub DataNamaSaja()
> > set rngKu = sheet7.range("a1").currentregion
> > 'misal data nama adalah kolom B saja dan akan dicopy ke sheet13 mulai
> > range k1
> > rngku.resize(,1).offset(,1).copy sheet13.range("k1")
> > end sub
> >
> > di sheet3 ada prosedur :
> > public sub DataUmurSaja()
> > set rngKu = sheet7.range("a1").currentregion
> > 'misal data umur adalah kolom E saja dan akan dicopy ke sheet13 mulai
> > range j1
> > rngku.resize(,1).offset(,4).copy sheet13.range("j1")
> > end sub
> >
> > Pada kedua prosedur yang ada di masing-masing sheet tidak ada deklarasi
> > rngKu lagi bukan ?
> > Contoh seperti inilah yang sering disebut bahwa Public dan Private adalah
> > berkaitan dengan ruang lingkup variabel.
> >
> > ------------------------
> >
> > Jadi, Public dan Private bukan sekedar ruang lingkup variabel saja,
> tetapi
> > mencakup karakteristik akses pemakaian.
> > Hal ini berkaitan erat dengan cara komputer membaca sebuah data yang
> > melalui pointernya, bukan nama variabelnya. Tapi hal seperti pointer ini
> > ndak usah dipikirkan, biar jadi urusannya si komputer saja. ndak mumet
> kalo
> > mikirin pointer.
> >
> > Moga-moga jadi bingung dan jadi punya imajinasi lain tentang variabel,
> > public, private dsb, sehingga selalu muncul rasa ingin tahu lebih banyak
> > lagi.
> >
> > Wassalam,
> > Kid.
> >
> > On Sun, Mar 25, 2012 at 15:43, Rara Wilis ra2wilis@... wrote:
> >
> > > **
>
> > >
> > >
> > > maaf, koreksi ada yg salah fatal:
> > >
> > > tertulis
> > > *
> > > *
> > > *Lingkup Berlakunya VARIABLEs dan CONSTANTs*
>
> > >
> > > Variable ataupun Konstanta yg dideklarasikan pada level (di dalam
> sebuah)
> > > Prosedur
> > > Jika di deklarasikan dengan statement Dim / Private
> > > ( Dim NamaVariable as TiPeData )
> > > akan berlaku dan dikenal di modul tsb ( di semua Prosedur yg berada di
> > > Module tsb)
> > >
> > >
> > > seharusnya:
> > > *
> > > *
> > > *Lingkup Berlakunya VARIABLEs dan CONSTANTs*
>
> > >
> > > Variable ataupun Konstanta yg dideklarasikan pada level (di dalam
> sebuah)
> > > *MODULE*
>
> > > Jika di deklarasikan dengan statement Dim / Private
> > > ( Dim NamaVariable as TiPeData )
> > > akan berlaku dan dikenal di modul tsb ( di semua Prosedur yg berada di
> > > Module tsb)
> > >
> > >
> > >
> > >
> > > On Sun, Mar 25, 2012 at 3:38 PM, Rara Wilis ra2wilis@... wrote:
> > >
> > >> halo...
> > >> Ini kayaknya harus ngobrol mengenai : *Ruang Lingkup Berlakunya, dan
> > >> Umur VARIABLE*
>
> > >> Kita akan membicarakan hal yg terjadi di satu workbook saja dulu
> > >> ---------------- cut -------
> > >>
> > >
> > >
> > >
> >
>
>
>
2.

Mempercepat proses macro

Posted by: "cuma.milis@gmail.com" cuma.milis@gmail.com

Mon Mar 26, 2012 6:16 am (PDT)



dear be-excel,
as subject, saya lagi cari2 bagaimana membuat proses macro bisa berjalan
lebih cepat. yg dishare mba siti dan mas o'seno (excelitems.com) -17 cara
membuat proses macro lebih cepat, sudah saya praktek-an.
isinya kurang lebih penulisan macro agar simple, bypass clipboard,
screenupdating dll.

untuk proses macro pivottable -ini benar2 terasa bgt bedanya- sudah saya
coba juga (manualupdate = true)

tidak lupa juga masalah deklarasi variabel kemarin (thanks to rara, mba
iHaps, dan mr kid)

apakah ada bahan referensi/sample lain yang bisa saya jadikan pelajaran?

salam
vega

Recent Activity
Visit Your Group
Yahoo! Groups

Parenting Zone

Tips for family,

kids and living

Yahoo! Finance

It's Now Personal

Guides, news,

advice & more.

Check out the

Y! Groups blog

Stay up to speed

on all things Groups!

Need to Reply?

Click one of the "Reply" links to respond to a specific message in the Daily Digest.

Create New Topic | Visit Your Group on the Web
---------------------------------------------------------------------
bergabung ke milis (subscribe), kirim mail kosong ke:
belajar-excel-subscribe@yahoogroups.com

posting ke milis, kirimkan ke:
belajar-excel@yahoogroups.com

berkunjung ke web milis
http://tech.groups.yahoo.com/group/belajar-excel/messages

melihat file archive / mendownload lampiran
http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di :
http://milis-belajar-excel.1048464.n5.nabble.com/

menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com

keluar dari membership milis (UnSubscribe):
kirim mail kosong ke  belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------

Tidak ada komentar:

Posting Komentar