Menurut pendapat saya, di VBA, secara murni tidak ada fungsi SUM, SUMIF,
SUMPRODUCT maupun "bangsa SUM" lainnya..
2011/8/29 Loheng Stone <lohengstone@yahoo.com>
Jadi biasanya untuk mempercepat program, pemakai VBA Excel meminjam
fungsi milik workshseet (WorksheetFunction); Misalnya
Cell(16,4) = WorksheetFunction.SUMIF(RangeYgDiSum,Kriteria,RangeKriteria)
Tanpa meminjam fungsi milik Excel; jangan lantas dikira bawa VBA tidak dapat
menjumlah (SUM, SUMIF, SUMPRODUCT dan bangsa SUM lainnya, jika ada),
karena VBA punya struktur LOOP di mana setiap step kita dapat menumpuk tambah
sekumpulan nilai yg merujuk ke cell yg berurut-urutan ke sebuah variable.
Misal, terhadap RANGE dari cell A1 sampai cell A1000 (berisi bilangan);
di worksheet kita dapat menjumlah dengan SUM(A1:A1000)
di VBA kita menjumlah dng WorksheetFunction.SUM(Range("A1:A1000")),
Bisa juga dengan menuliskan Text Formula ke cell, atau dengan menumpuk_tambah
dengan Loop seperti disebutkan di atas.
for R = 1 to 1000
HasilSum = HasilSum + Range("A" & i).Value
next R
Range("A1001").value = HasilSum
Pertanyaan yg diajukan oleh pak Loheng bukan hanya sekedar Menjumlah, tetapi
MENJUMLAH BERSYARAT.
Syarat bukan sesuatu yg mengerikan, karena, di VBA, tidak lebih dari sesuatu yg
dengan mudah dapat diexpresikan dengan struktur If - Then
Langsung saja.. makronya (tanpa meminjam Fungsi milik worksheet dan
tanpa membuat TEXT matematik / ataupun text fungsi worksheet yg kemudian
di "Evaluate"); kita kira sbb
'-----------------------------------
Sub MenjumlahBersyarat()
'== 1 sep 2011 / Hapsari ==
'== courtesy of mbak siti==
----------------------------
Dim dTabel As Range
Dim dHasil As Range
Dim dSumIf As Double ' Ingat bahwa nama Variable adalah sekedar NAMA
Dim i As Long, n As Long
Set dTabel = Range("G3").CurrentRegion
Set dHasil = Range("B15").CurrentRegion
' Loop Luar
For i = 2 To dHasil.Rows.Count
dSumIf = 0
' Loop Dalam
For n = 2 To dTabel.Rows.Count
If dTabel(n, 2) = dHasil(i, 2) Then '<<-- bersyarat
dSumIf = dSumIf + dTabel(n, 3) ' <<- tumpukan jumlah
End If
Next n
' --menulis hasil ke cell setiap selesai 1 X Loop-Dalam --
If Not dSumIf = 0 Then dHasil(i, 3) = dSumIf
Next i
End Sub
'-----------------------------------
Di workbook contoh terlampir, makro sudah direpresentasikan oleh TOMBOL
Mohon maaf jika ternyata bukan itu yg dimaksudkan
2011/8/29 Loheng Stone <lohengstone@yahoo.com>
Apa fungsi macro yang dipakai untuk menjumlahkan Qty berdasarkan part.idContoh terlampirTerima kasih..
__._,_.___
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| selamat idul fitri, mohon maaf lahir dan batin... |
| www.linkedin.com/company/xl-mania |
| ayo pesan buku "mengapa boss benci chart anda" :D :D :D |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message, melecehkan, tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan winzip jika perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/ |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau... |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html |
+-------------------------------------------------------------------+
| Message lama ada di : |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id] |
| http://www.mail-archive.com/xl-mania@yahoogroups.com |
+-------------------------------------------------------------------+
| selamat idul fitri, mohon maaf lahir dan batin... |
| www.linkedin.com/company/xl-mania |
| ayo pesan buku "mengapa boss benci chart anda" :D :D :D |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message, melecehkan, tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan winzip jika perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/ |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau... |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html |
+-------------------------------------------------------------------+
| Message lama ada di : |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id] |
| http://www.mail-archive.com/xl-mania@yahoogroups.com |
+-------------------------------------------------------------------+
.
__,_._,___
Nenhum comentário:
Postar um comentário