Terimakasih Pak Kid
Untuk itu saya buatkan VBA contoh formula yang tadi saya kirim biar tidak
berulang ulang, dan bisa saya gunakan untuk format berikutnya dengan range yang
sama dan dengan tinggal copy module saja.
Maaf & Terimakasih banyak penjelasannya
Sukses
Pada Rabu, 11 November 2015 20:21, "'Mr. Kid' [email protected]
[belajar-excel]" <[email protected]> menulis:
Wa'alaikumussalam wr wb
Hehehe...Selama kasusnya jelas dan bisa dibayangkan, maka bisa diusahakan untuk
ada hal yang ditambahkan yang bisa bermanfaat buat BeExceller selain penanya.
VBA adalah sarana otomasi. Bahasa yang digunakan adalah pemrograman VB for A
atau VB yang ditempelkan ke suatu aplikasi.Berarti fungsi VBA adalah untuk
mengotomasi proses di dalam aplikasi tempat tinggalnya. VBA for Excel berarti
bisa digunakan untuk mengotomasi proses yang dibuat user di dalam Excel.
Contoh otomasi adalah menyalin data dari suatu range ke range lain. Contoh
lainnya adalah mengotomasi proses entri data melalui sebuah userform. Jadi pada
intinya, semua proses yang tadinya dilakukan manual oleh user digantikan oleh
suatu runtime kode-kode pemrograman melalui VBA.
Begitulah gambaran umumnya.
Wassalamu'alaikum wr wbKid
Sent from my smart enough phone
On Nov 11, 2015, at 19:59, HAIRUL ALAM [email protected] [belajar-excel]
<[email protected]> wrote:
Assalamualaikum
Pak Kid
Terimakasih Banyak Penjelasannya
Sangat lengkap dan membantu sekali dalam pembelajaran excel sayaTanya lagi Pak,
sebenarnya penggunaan VBA yang sesuai fungsinya selain untuk memasukkan formula
dan databaseagar VBA difungsikan sesuai dengan kegunaannya cocoknya apa ya Pak
Maaf dan Terimakasih
Wassalamualaikum
Pada Rabu, 11 November 2015 19:36, "'Mr. Kid' [email protected]
[belajar-excel]" <[email protected]> menulis:
Wa'alaikumussalam wr wb
Hai Hairul,
Coba tambahkan proses untuk mem-values hasil formula. Bisa berupa copy paste
values atau set value dengan value yang ada.
Contoh : formula berisi fungsi vLookUp dan IFError yang berbunyi :
=IFERROR(VLOOKUP(D2,PIPE!$B$3:$L$20000,2,FALSE),"")
akan dipasang pada area range : e2:e20000 di sheet bernama 'data'
'paksa kalkulasi excel automatic bila tidak mengurangi kecepatan proses
'application.screenupdating=false 'jika proses terasa melambat karena
refresh layar, aktifkan baris ini
application.calculation=xlCalculationAutomatic 'jika prosesnya
melambat, ganti dengan manual xlcalculationmanual
'pasang formula
sheets("data").range("e2:e20000").formula="=IFERROR(VLOOKUP(D2,PIPE!$B$3:$L$20000,2,FALSE),"""")"
'cara merujuk range di atas bisa juga menggunakan range("e2" ,
"e20000" )
'sheets("data").calculate 'jika calculation di set manual, aktifkan
baris ini agar formula di kalkulasi excel
'proses mem-values formula di dalam cells
sheets("data").range("e2:e20000").value=sheets("data").range("e2:e20000").value
'tidak pakai Selection karena tidak ada cells yang di-select selama
proses ini
'bisa juga dengan proses copy lalu paste values dengan kode berikut :
(aktifkan bila akan digunakan)
'sheets("data").range("e2:e20000").copy 'proses copy
'sheets("data").range("e2:e20000").pastespecial xlpastevalues
'bisa pilih opsi lain, seperti values n number format, dsb
'kalau pakai proses copas, kosongkan clipboard dengan :
'application.cutcopymode=false
'kalau calculation di atas sana di set manual, set automatic disini
'application.calculation=xlCalculationAutomatic
'kalau screenupdating diaktifkan untuk diset false di atas sana, maka
kembalikan lagi ke true
'application.screenupdating=true
'selesai
Andai diperhatikan dengan lebih seksama, bagian 2 baris ini :
sheets("data").range("e2:e20000").formula="=IFERROR(VLOOKUP(D2,PIPE!$B$3:$L$20000,2,FALSE),"""")"
sheets("data").range("e2:e20000").value=sheets("data").range("e2:e20000").value
bisa dinaikkan sedikit performanya dengan memanfaatkan blok with. Syntax with :
with objectnya
'pemanfaatan object disini
end with
untuk contoh baris di atas :
with sheets("data").range("e2:e20000")
.formula="=IFERROR(VLOOKUP(D2,PIPE!$B$3:$L$20000,2,FALSE),"""")"
.value=.value
end with
jadi lebih simpel dan meningkat dikit performanya.
Kalau proses pemasangan nilai hasil vlookup dengan methods Evaluate, maka harus
diperintah satu per satu langsung dari VBA alias tidak bisa langsung banyak
cells.
Pemasangan formula di atas juga dilakukan satu per satu, tetapi dilakukan oleh
runtime di dalamnya si Excel dan bukan oleh si script VBA buatan user, sehingga
terkesan lebih cepat.
Pasang pakai evaluate dilakukan dengan loop.
dim lRow as long
for lRow=2 to 20000
sheets("data").cells(lrow,"e").value=evaluate("=IFERROR(VLOOKUP(D" &
lrow & ",PIPE!$B$3:$L$20000,2,FALSE),"""")") next lrow
Jika akan memanfaatkan methods worksheetfunction alias sarana untuk
memanfaatkan fungsi-fungsi bawaan Excel dari VBA, maka bagian kode di atas sana
yang berbunyi :
sheets("data").range("e2:e20000").formula="=IFERROR(VLOOKUP(D2,PIPE!$B$3:$L$20000,2,FALSE),"""")"
sheets("data").range("e2:e20000").value=sheets("data").range("e2:e20000").value
bisa diganti dengan :
sheets("data").range("e2:e20000").value = _
application.worksheetfunction.iferror( _
application.worksheetfunction.vlookup(
sheets("data").range("d2:d20000") _
, sheets("pipe").range("b3:L20000") _
, 2 , 0 ) _
, vbnullstring )
Jika akan memanfaatkan array formula, baris kode yang di atas sana yang
berbunyi :
sheets("data").range("e2:e20000").formula="=IFERROR(VLOOKUP(D2,PIPE!$B$3:$L$20000,2,FALSE),"""")"
sheets("data").range("e2:e20000").value=sheets("data").range("e2:e20000").value
bisa diubah menjadi :
sheets("data").range("e2:e20000").formulaarray="=IFERROR(VLOOKUP(D2:d20000,PIPE!$B$3:$L$20000,2,FALSE),"""")"
sheets("data").range("e2:e20000").value=sheets("data").range("e2:e20000").value
Kira-kiranya begitu...
Wassalamu'alaikum wr wb
Kid
On Wed, Nov 11, 2015 at 5:44 PM, HAIRUL ALAM [email protected]
[belajar-excel] <[email protected]> wrote:
Terimakasih para Master
Cara ini Sub TRACE_HEAT()Worksheets("DATA").Range("E2").Value =
Evaluate("=IFERROR(VLOOKUP(D2,MAIN!$B$3:$L$5,2,FALSE),"""")")End Sub
berhasil namun harus masukkan formula per satu2, apakah bisa bila rangenya
banyak misal yang saya beri warna kuning agar seperti range
(E2) menjadi E2 sd E20000 dan $B$3:$L$5 menjadi $B$3 sd $L$20000
Maaf & Terimakasih
Pada Rabu, 11 November 2015 17:27, "Hendrik Karnadi
[email protected] [belajar-excel]" <[email protected]>
menulis:
Coba ganti:Formula......denganValue = Evaluate ("formulanya")Formualanya
tidak perlu diberi tanda =(sama dengan) lagi.
Salam, HK
Sent from Samsung Mobile
-------- Original message --------From: "HAIRUL ALAM [email protected]
[belajar-excel]" Date:11/11/2015 4:11 PM (GMT+07:00) To:
[email protected] Subject: [belajar-excel] code Macro tanpa
memunculkan formula pada worksheet
Assalamualaikum
Yth. Para Master
Maaf Saya ingin bertanya, saya mempunyai masalah tentang code VBA, yang saya
ingin agar formula tidak muncul pada cell worksheet misalkan code VBA sebagai
berikut :Sub NO_HEAT()Worksheets("DATA").Range("E2", "E20000").Formula =
"=IFERROR(VLOOKUP(D2,PIPE!$B$3:$L$20000,2,FALSE),"""")"End Sub
bagaimana codenya agar yang dimunculkan pada worksheet adalah hasil dari
perhitungan sesuai code VBA diatas dan tidak memunculkan formula pada cell
worksheet
Terimakasih Banyak
MaafHairul Alam
Wassalamualaikum
#yiv2755030630 #yiv2755030630 -- #yiv2755030630ygrp-mkp {border:1px solid
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv2755030630
#yiv2755030630ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv2755030630
#yiv2755030630ygrp-mkp #yiv2755030630hd
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px
0;}#yiv2755030630 #yiv2755030630ygrp-mkp #yiv2755030630ads
{margin-bottom:10px;}#yiv2755030630 #yiv2755030630ygrp-mkp .yiv2755030630ad
{padding:0 0;}#yiv2755030630 #yiv2755030630ygrp-mkp .yiv2755030630ad p
{margin:0;}#yiv2755030630 #yiv2755030630ygrp-mkp .yiv2755030630ad a
{color:#0000ff;text-decoration:none;}#yiv2755030630 #yiv2755030630ygrp-sponsor
#yiv2755030630ygrp-lc {font-family:Arial;}#yiv2755030630
#yiv2755030630ygrp-sponsor #yiv2755030630ygrp-lc #yiv2755030630hd {margin:10px
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv2755030630
#yiv2755030630ygrp-sponsor #yiv2755030630ygrp-lc .yiv2755030630ad
{margin-bottom:10px;padding:0 0;}#yiv2755030630 #yiv2755030630actions
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv2755030630
#yiv2755030630activity
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv2755030630
#yiv2755030630activity span {font-weight:700;}#yiv2755030630
#yiv2755030630activity span:first-child
{text-transform:uppercase;}#yiv2755030630 #yiv2755030630activity span a
{color:#5085b6;text-decoration:none;}#yiv2755030630 #yiv2755030630activity span
span {color:#ff7900;}#yiv2755030630 #yiv2755030630activity span
.yiv2755030630underline {text-decoration:underline;}#yiv2755030630
.yiv2755030630attach
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px
0;width:400px;}#yiv2755030630 .yiv2755030630attach div a
{text-decoration:none;}#yiv2755030630 .yiv2755030630attach img
{border:none;padding-right:5px;}#yiv2755030630 .yiv2755030630attach label
{display:block;margin-bottom:5px;}#yiv2755030630 .yiv2755030630attach label a
{text-decoration:none;}#yiv2755030630 blockquote {margin:0 0 0
4px;}#yiv2755030630 .yiv2755030630bold
{font-family:Arial;font-size:13px;font-weight:700;}#yiv2755030630
.yiv2755030630bold a {text-decoration:none;}#yiv2755030630 dd.yiv2755030630last
p a {font-family:Verdana;font-weight:700;}#yiv2755030630 dd.yiv2755030630last p
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv2755030630
dd.yiv2755030630last p span.yiv2755030630yshortcuts
{margin-right:0;}#yiv2755030630 div.yiv2755030630attach-table div div a
{text-decoration:none;}#yiv2755030630 div.yiv2755030630attach-table
{width:400px;}#yiv2755030630 div.yiv2755030630file-title a, #yiv2755030630
div.yiv2755030630file-title a:active, #yiv2755030630
div.yiv2755030630file-title a:hover, #yiv2755030630 div.yiv2755030630file-title
a:visited {text-decoration:none;}#yiv2755030630 div.yiv2755030630photo-title a,
#yiv2755030630 div.yiv2755030630photo-title a:active, #yiv2755030630
div.yiv2755030630photo-title a:hover, #yiv2755030630
div.yiv2755030630photo-title a:visited {text-decoration:none;}#yiv2755030630
div#yiv2755030630ygrp-mlmsg #yiv2755030630ygrp-msg p a
span.yiv2755030630yshortcuts
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv2755030630
.yiv2755030630green {color:#628c2a;}#yiv2755030630 .yiv2755030630MsoNormal
{margin:0 0 0 0;}#yiv2755030630 o {font-size:0;}#yiv2755030630
#yiv2755030630photos div {float:left;width:72px;}#yiv2755030630
#yiv2755030630photos div div {border:1px solid
#666666;height:62px;overflow:hidden;width:62px;}#yiv2755030630
#yiv2755030630photos div label
{color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv2755030630
#yiv2755030630reco-category {font-size:77%;}#yiv2755030630
#yiv2755030630reco-desc {font-size:77%;}#yiv2755030630 .yiv2755030630replbq
{margin:4px;}#yiv2755030630 #yiv2755030630ygrp-actbar div a:first-child
{margin-right:2px;padding-right:5px;}#yiv2755030630 #yiv2755030630ygrp-mlmsg
{font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv2755030630
#yiv2755030630ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv2755030630
#yiv2755030630ygrp-mlmsg select, #yiv2755030630 input, #yiv2755030630 textarea
{font:99% Arial, Helvetica, clean, sans-serif;}#yiv2755030630
#yiv2755030630ygrp-mlmsg pre, #yiv2755030630 code {font:115%
monospace;}#yiv2755030630 #yiv2755030630ygrp-mlmsg *
{line-height:1.22em;}#yiv2755030630 #yiv2755030630ygrp-mlmsg #yiv2755030630logo
{padding-bottom:10px;}#yiv2755030630 #yiv2755030630ygrp-msg p a
{font-family:Verdana;}#yiv2755030630 #yiv2755030630ygrp-msg
p#yiv2755030630attach-count span {color:#1E66AE;font-weight:700;}#yiv2755030630
#yiv2755030630ygrp-reco #yiv2755030630reco-head
{color:#ff7900;font-weight:700;}#yiv2755030630 #yiv2755030630ygrp-reco
{margin-bottom:20px;padding:0px;}#yiv2755030630 #yiv2755030630ygrp-sponsor
#yiv2755030630ov li a {font-size:130%;text-decoration:none;}#yiv2755030630
#yiv2755030630ygrp-sponsor #yiv2755030630ov li
{font-size:77%;list-style-type:square;padding:6px 0;}#yiv2755030630
#yiv2755030630ygrp-sponsor #yiv2755030630ov ul {margin:0;padding:0 0 0
8px;}#yiv2755030630 #yiv2755030630ygrp-text
{font-family:Georgia;}#yiv2755030630 #yiv2755030630ygrp-text p {margin:0 0 1em
0;}#yiv2755030630 #yiv2755030630ygrp-text tt {font-size:120%;}#yiv2755030630
#yiv2755030630ygrp-vital ul li:last-child {border-right:none
!important;}#yiv2755030630