Terima kasih Mbak SIti atas penjelasannya. 

Contoh ini dapat menambah wawasan bagi saya dan teman2 yang lain mengenai 
pemanfaatan Variabel dalam program, walupun dalam "prakteknya" lebih kompleks 
(perlu usaha keras untuk memahami logikanya).

Sekali lagi terima kasih.

Salam,
Hendrik Karnadi


--- On Sat, 9/7/11, STDEV(i) <[email protected]> wrote:

From: STDEV(i) <[email protected]>
Subject: Re: [belajar-excel] Bagaimana beralih dari penggunaan Range ke 
Variabel dalam membuat Program
To: [email protected]
Date: Saturday, 9 July, 2011, 11:56 PM















 
 



  


    
      
      
      Mungkin begini pak (ini hanya menurut pendapat siti saja)


Variable Object (misalnya object Range) dibuat, karena object tersebut akan 
sering dipakai

(dirujuk entah fisiknya, entah salah satu property atau method nya)

Jika tabel tsb hanya akan disebut satu atau dua kali saja, maka tanpa 
menjadikanya 

Variable Object Range pun = tidak ada masalah.


Memvariablekan Object Range juga menjadi agak WAJIB jika range tersebut 
bersifat dinamis

baik letaknya maupun dimensinya.


Misal kita (berada di workbook A)  akan mengolah data dlm tabel yg ada range 
D17:G201

di Sheet1 workbook B.

Jika tabel tsb harus dirujuk beruang ulang, maka akan lebih gampang jika di 
Variablekan dulu


Set MyTabel = Workbooks("B.xls")>Sheets("Sheet1").Range("D17").CurrentRegion


Merujuk Kolom Pertama saja dari yg ada di Range tsb

Set Kolom1 = MyTabel.Resize(MyTabel.Rows.Count,1)


Merujuk Kolom Ke3 sajaSet Kolom3 = MyTabel.Resize(MyTabel.Rows.Count, 
1).Offset(0, 2)


Merujuk baris 4 baris pertama

Set First4Rows = MyTabel.Resize(4, MyTabel.Columns.Count)


Merujuk baris 5 baris dimulai baris ke 7

Set Rng5X7 = MyTabel.Offset(6,0).Resize(5, MyTabel.Columns.Count)atau bisa 
diringkas

Set Rng5X7 = MyTabel.Offset(6,0).Resize(5, )


Merujuk nilai satu Cell  E19  dikalikan 100 disimpan dlm variable VV = 
MyTabel(3,2).Value * 100


Merujuk Range yg dimensinya 6 row x 4 kolom didalam tabel tsb dimulai dari Cell 
 E19  

Set XRange = MyTabel(3.2).Resize(6,4)


Didalam makro mbak Haps, ada variable D (object range)Set D = 
Cells(1).CurrentRegion




di sini memvariablekan D menjadi agak "wajib" karena mungkin saja range di 
sheet tsb yg 

dimulai dari Cells(1) / A1  setiap saat akan berubah (bertambah datanya)

Dengan Cells(1).CurrentRegion akan didapat A1 sampai Seluas data yg ada di 
sekitar A1.





Kadang-kadang kita sudah menyiapkan variable object, tetapi pada prakteknya di 
tengah makro, ternyata hanya dirujuk sekali saja. Jika tidak lupa, harusnya 
makro di revisi dulu, 

sebaiknya object tsb tidak perlu di variablekan, kecuali syntaks coding 
perujukannya sangat panjang.


Mudah mudahan sekelumit "penjelasan" seadanya di atas dapat ditangkap 
maksudnya...

(sambil menungu masukan yg lebih lengkap dari temans lain )..


wassalam,-siti-





2011/7/9 hendrik karnadi <[email protected]>

















 



  


    
      
      
      Jika saya perhatikan, gaya nulis Mbak Haps, Mbak Siti, Mr. Kid dan Pak 
Anton dan para pakar lainnya banyak menggunakan "Variabel" dalam pembuatan 
program (Advance level), sedangkan saya hanya bisa bermain di "Range" (Basic 
level).



Bermain dengan Variable pastinya akan lebih flexibel dibandingan dengan Range.

Kalau boleh nanya, bagaimana "cara cepat" beralih dari penggunaan Range ke 
Variable dalam menyusun program ?



Barangkali ada diantara para Pakar yang berkenan menuliskan resepnya.

Terima Kasih.

Salam,
Hendrik Karnadi


--- On Sat, 9/7/11, Haps <[email protected]> wrote:


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As 
Boolean)


' by hapsari / smg, july 9, 2011' beExcel case:
' http://tech.groups.yahoo.com/group/belajar-excel/message/11682


If Target.Cells.Count = 1 ThenIf Target.Address = "$A$1" Then


Dim sht As Worksheet, NewSht As WorksheetDim D As Range, i As Integer, c As 
Integer


Set D = Cells(1).CurrentRegionApplication.Calculation = xlCalculationManual


Application.ScreenUpdating = FalseApplication.DisplayAlerts = False


For Each sht In WorksheetsIf sht.Name <> "Sheet1" Then sht.Delete


NextFor i = 2 To D.Rows.Count
Set NewSht = Worksheets.AddNewSht.Name = D(i, 1)
For c = 1 To D.Columns.CountNewSht.Cells(c, 1) = D(1, c)


NewSht.Cells(c, 2) = D(i, c)Next c
NewSht.Move 
after:=Sheets(Sheets.Count)NewSht.Cells(1).CurrentRegion.Columns.AutoFit


Next iApplication.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = TrueApplication.DisplayAlerts = True


End IfEnd If
End Sub






    
     

    
    


 



  








Kirim email ke