Dear BeExceler,
cara penulisan formula dari worksheet ke VBA dapat dilakukan dengan
cara-cara seperti berikut:
1. Menggunakan fungsi Evaluate
contoh: Cells(1,1).value = Evaluate("
=ini_formula_panjang_dari_worksheet_yang_dipindah_ke_VBA")
perhatikan cara penulisannya
a. formula dari worksheet diapit dengan tanda buka_kurung dan kutip_dua,
lalu ditutup dengan tanda kutip_dua dan tutup_kurung
b. formula dari worksheet ditulis mulai dari tanda sama_dengan sampai
akhir
c. semua tanda pemisah harus menggunakan koma, jika awalnya formula di
tulis di worksheet dengan menggunakan tanda titik_koma sebagai pemisah
antara satu bagian dengan bagian yang lain (asumsi regional setting adalah
Indonesia) dan dapat berjalan dengan baik di worksheet, maka jika tanda
pemisah tidak diganti dari titik_koma menjadi koma maka akan muncul error.
2. Memanfaatkan fungsi Application.WorkSheetFunction.nama_fungsinya
catatan: Tidak semua fungsi dari worksheet dapat digunakan di dalam
VBA, untuk mengetahui fungsi-fungsi yang dapat dipanggil bisa dengan cara
menulis tanda titik setelah syntax Application.WorksheetsFunction
untuk dapat menggunakan cara yang kedua ini, anda harus mengetahui
terlebih dahulu bagaimana cara menunjuk suatu cell dan suatu area (range)
di dalam workheet
Berikut adalah beberapa cara menunjuk suatu cell dan suatu area di
dalam worksheet
a. menunjuk cell menggunakan fungsi Cells
syntax-nya adalah Cells(nomer_baris , nomer_kolom)
contoh: Cells( 2, 3) artinya adalah menunjuk kepada cell di baris 2
dan kolom 3 atau disebut cell C3
cara tersebut hanya berlaku untuk menunjuk pada cell yang tereletak
pada workbook yang aktif dan worksheet yang aktif
jika cell yang ingin ditunjuk terletak pada workbook lain dan/atau
wroksheet lain maka cara menunjuknya selalu melalui hierarki yang lebih
tinggi
contoh: Workbooks("DataPenjualan2012").WorkSheets("Database").Cells(2
, 3)
b. Menunjuk cell dan range menggunakan fungsi Range
1). Menunjuk sebuah cell
contoh: Range("A2") artinya menunjuk kepada sebuah cell yang
bernama cell A2
2). Menunjuk beberapa buah cell yang berhimpitan
contoh: Range("A2:C3") artinya menunjuk kepada beberapa buah
cell mulai dari A2 sampai C3, berarti yang ditunjuka adalah cell A2, A3,
B2, B3, C2, dan C3
3). Menunjuk beberapa cell yang tidak berhimpitan
contoh: Range("A2, C3, E5") artinya menunjuk kepada cell A2,
C3, dan E5 yang letaknya tidak saling berhimpit
4). Menunjuk sebuah kolom
contoh: Range ("A:A") artinya menunjuk seluruh cell di dalam
kolom A
5). Menunjuk beberapa kolom yang saling berhimpit
contoh: Range ("A:E") artinya menunjuk seluruh cell mulai dari
kolom A sampai E
6). Menunjuk beberapa kolom yang tidak saling berhimpit
contoh: Range("A:A, C:C, E:E") artinya menunjuk seluruh cell di
dalam kolom A, kolom C, dan kolom E
selain dengan menunjuk langsung alamat cell atau range,
penunjukan juga bisa dilakukan dengan memberi nama kepada range yang akan
dilipih
contoh:
Option Explicit
Sub Tes()
Dim Pilihan As Range
Set Pilihan = Range("A:A, C:C, E:E")
Pilihan.Select
End Sub
7). Menunjuk suatu area / range dengan syntax baku dari fungsi Range
syntax dari Range adalah Range(alamat_cell_awal ,
alamat_cell_akhir)
contoh: Range(Range("A1") , Range("E5"))
atau
Range(Cells(1,1) , Cells(5,5))
kedua script di atas akan menunjuk kepada suatu range mulai dari
cell A1 sampai dengan cell E5
Setelah sedikit dongeng dari Jan, sekarang Jan akan bertanya ke pak Lukman,
menurut pak Lukman mana yang lebih pas untuk formula yang akan digunakan
oleh pak Lukman?
silakan dicoba dahulu, jika ada kesulitan bisa dishare lagi ke sini
Best Regard,
Miss Jan Raisin
2012/11/17 lkm jktind <[email protected]>
> **
>
>
> Bagaimana cara penulisannya di macro excel :
> dengan contoh di bawah ini :
>
> Sumproduct(("$A$2:$A$36000"=$A25)*(("$D$1:$AB$1=F$)*($D$2:$AB$36000)
> Index($D$2:$AB$36000;match("$A$2:$A$36000";$A25); match("$D$1:$AB$1;F$))
> Hloopup= (F$1;$D$1:$D$3600;Match($A$1:$A$3600;$A25);0)
>
>
> Cells(r,5) = application.worksheetfunction.sumproduct(
> Cells(r,6) = application.worksheetfunction.Index(
> Cells(r,7) = application.worksheetfunction.Hlookup(
>
>
>
> Salam
>
>
> Lukman.
>
>
>
> nb : maaf nga begitu bisa bahasa inggris.
>
>
>