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
#yiv2861652113 #yiv2861652113 -- #yiv2861652113ygrp-mkp {border:1px solid
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv2861652113
#yiv2861652113ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv2861652113
#yiv2861652113ygrp-mkp #yiv2861652113hd
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px
0;}#yiv2861652113 #yiv2861652113ygrp-mkp #yiv2861652113ads
{margin-bottom:10px;}#yiv2861652113 #yiv2861652113ygrp-mkp .yiv2861652113ad
{padding:0 0;}#yiv2861652113 #yiv2861652113ygrp-mkp .yiv2861652113ad p
{margin:0;}#yiv2861652113 #yiv2861652113ygrp-mkp .yiv2861652113ad a
{color:#0000ff;text-decoration:none;}#yiv2861652113 #yiv2861652113ygrp-sponsor
#yiv2861652113ygrp-lc {font-family:Arial;}#yiv2861652113
#yiv2861652113ygrp-sponsor #yiv2861652113ygrp-lc #yiv2861652113hd {margin:10px
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv2861652113
#yiv2861652113ygrp-sponsor #yiv2861652113ygrp-lc .yiv2861652113ad
{margin-bottom:10px;padding:0 0;}#yiv2861652113 #yiv2861652113actions
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv2861652113
#yiv2861652113activity
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv2861652113
#yiv2861652113activity span {font-weight:700;}#yiv2861652113
#yiv2861652113activity span:first-child
{text-transform:uppercase;}#yiv2861652113 #yiv2861652113activity span a
{color:#5085b6;text-decoration:none;}#yiv2861652113 #yiv2861652113activity span
span {color:#ff7900;}#yiv2861652113 #yiv2861652113activity span
.yiv2861652113underline {text-decoration:underline;}#yiv2861652113
.yiv2861652113attach
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px
0;width:400px;}#yiv2861652113 .yiv2861652113attach div a
{text-decoration:none;}#yiv2861652113 .yiv2861652113attach img
{border:none;padding-right:5px;}#yiv2861652113 .yiv2861652113attach label
{display:block;margin-bottom:5px;}#yiv2861652113 .yiv2861652113attach label a
{text-decoration:none;}#yiv2861652113 blockquote {margin:0 0 0
4px;}#yiv2861652113 .yiv2861652113bold
{font-family:Arial;font-size:13px;font-weight:700;}#yiv2861652113
.yiv2861652113bold a {text-decoration:none;}#yiv2861652113 dd.yiv2861652113last
p a {font-family:Verdana;font-weight:700;}#yiv2861652113 dd.yiv2861652113last p
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv2861652113
dd.yiv2861652113last p span.yiv2861652113yshortcuts
{margin-right:0;}#yiv2861652113 div.yiv2861652113attach-table div div a
{text-decoration:none;}#yiv2861652113 div.yiv2861652113attach-table
{width:400px;}#yiv2861652113 div.yiv2861652113file-title a, #yiv2861652113
div.yiv2861652113file-title a:active, #yiv2861652113
div.yiv2861652113file-title a:hover, #yiv2861652113 div.yiv2861652113file-title
a:visited {text-decoration:none;}#yiv2861652113 div.yiv2861652113photo-title a,
#yiv2861652113 div.yiv2861652113photo-title a:active, #yiv2861652113
div.yiv2861652113photo-title a:hover, #yiv2861652113
div.yiv2861652113photo-title a:visited {text-decoration:none;}#yiv2861652113
div#yiv2861652113ygrp-mlmsg #yiv2861652113ygrp-msg p a
span.yiv2861652113yshortcuts
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv2861652113
.yiv2861652113green {color:#628c2a;}#yiv2861652113 .yiv2861652113MsoNormal
{margin:0 0 0 0;}#yiv2861652113 o {font-size:0;}#yiv2861652113
#yiv2861652113photos div {float:left;width:72px;}#yiv2861652113
#yiv2861652113photos div div {border:1px solid
#666666;height:62px;overflow:hidden;width:62px;}#yiv2861652113
#yiv2861652113photos div label
{color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv2861652113
#yiv2861652113reco-category {font-size:77%;}#yiv2861652113
#yiv2861652113reco-desc {font-size:77%;}#yiv2861652113 .yiv2861652113replbq
{margin:4px;}#yiv2861652113 #yiv2861652113ygrp-actbar div a:first-child
{margin-right:2px;padding-right:5px;}#yiv2861652113 #yiv2861652113ygrp-mlmsg
{font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv2861652113
#yiv2861652113ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv2861652113
#yiv2861652113ygrp-mlmsg select, #yiv2861652113 input, #yiv2861652113 textarea
{font:99% Arial, Helvetica, clean, sans-serif;}#yiv2861652113
#yiv2861652113ygrp-mlmsg pre, #yiv2861652113 code {font:115%
monospace;}#yiv2861652113 #yiv2861652113ygrp-mlmsg *
{line-height:1.22em;}#yiv2861652113 #yiv2861652113ygrp-mlmsg #yiv2861652113logo
{padding-bottom:10px;}#yiv2861652113 #yiv2861652113ygrp-msg p a
{font-family:Verdana;}#yiv2861652113 #yiv2861652113ygrp-msg
p#yiv2861652113attach-count span {color:#1E66AE;font-weight:700;}#yiv2861652113
#yiv2861652113ygrp-reco #yiv2861652113reco-head
{color:#ff7900;font-weight:700;}#yiv2861652113 #yiv2861652113ygrp-reco
{margin-bottom:20px;padding:0px;}#yiv2861652113 #yiv2861652113ygrp-sponsor
#yiv2861652113ov li a {font-size:130%;text-decoration:none;}#yiv2861652113
#yiv2861652113ygrp-sponsor #yiv2861652113ov li
{font-size:77%;list-style-type:square;padding:6px 0;}#yiv2861652113
#yiv2861652113ygrp-sponsor #yiv2861652113ov ul {margin:0;padding:0 0 0
8px;}#yiv2861652113 #yiv2861652113ygrp-text
{font-family:Georgia;}#yiv2861652113 #yiv2861652113ygrp-text p {margin:0 0 1em
0;}#yiv2861652113 #yiv2861652113ygrp-text tt {font-size:120%;}#yiv2861652113
#yiv2861652113ygrp-vital ul li:last-child {border-right:none
!important;}#yiv2861652113