Sama-sama.

Tentang baris yang berupa hasil jumlah.
Bukankah kira-kira bunyi bahasa manusianya secara eksplisit sebagai berikut
:
"Pada sebuah cell pada sebuah baris baru dibawah record terakhir tabel
hasil di kolom nilai,
diisi dengan :"

(Bisa pilih satu dari beberapa cara berikut)
1. A. formula dengan style R1C1 yang berbunyi Sum dari row (R) sebanyak
jumlah record hasil di atasnya [- jumlah record hasil] pada column tersebut
(C).
    B. Kemudian lakukan kalkulasi dan di-values-kan.

2. A. formula dengan style A1 yang berbunyi Sum dari cell kolom tertentu
yang pasti mulai baris pertama hasil yang juga sudah pasti (alamat cell
pertama) sampai dengan (:) cell pada kolom tertentu yang sama pada baris
tepat 1 baris sebelum baris diletakkannya hasil sum.
    B. Kemudian lakukan kalkulasi dan di-values-kan.

3. nilai hasil evaluasi (Evaluate) ekspresi kalimat formula yang dijelaskan
di nomor 1A
4. nilai hasil evaluasi (Evaluate) ekspresi kalimat formula yang dijelaskan
di nomor 2A

5. hasil kalkulasi fungsi woorksheet (WorksheetFunction) yang bernama Sum,
pada range kolom nilai di record pertamanya yang luasnya diubah menjadi
(Resize) setinggi jumlah record hasil dan selebar 1 kolom saja.

Kira-kira bunyi kode VBA-nya bagaimana ya...

Wassalam,
Kid.


2012/9/9 <[email protected]>

> **
>
>
> Terima kasih pak mrkid oleh2 pivottable-nya, akan saya pelajari perlahan.
>
> Btw ttg syntax 12 step tadi, msh ada yg blm bisa saya lengkapi, yaitu
> membuat jumlah di bawah baris terakhir. Mohon dibantu trm ksh..
> Powered by Telkomsel BlackBerry®
> ------------------------------
> 2012/9/9 Imam Sinurat <[email protected]>
>
>>
>>  Yth. Pak Mr Kid dan rekan2
>>
>> Krn masih awam sekali, hampir 15 jam saya kerjakan ini, mengikuti
>> step-step (istilah kerennya 'algoritma manual' bukan?) yg pak MrKid ajarkan
>> dan melihat contoh makro pada thread 'Makro Filter Sort Data Tak Unik'.
>> Mohon bpk evaluasi apakah mmg caranya sudah benar atau cuma faktor
>> kebetulan saja hasilnya benar :)
>> Juga mohon direvisi sintaxnya yang masih kurang efisien.
>>
>> Option Explicit
>> Public Sub sisipdata(Optional bvalue As Boolean = False)
>> Dim rngdata As Range, rnghasil As Range
>> Dim lrecdata As Long, lrechasil As Long
>>
>> '0. ke VBE (tekan ALT F11) dan buat sebuah module (bonus :: caranya ->
>> ke menu Insert -> pilih Module)
>>
>>     'RangeData
>>         Set rngdata = Sheet1.Range("b3").CurrentRegion
>>
>>     'beri nama range untuk data tanpa header
>>         rngdata.Offset(1).Resize(rngdata.Rows.Count - 1).Name = "myData"
>>
>> With Sheet2
>>
>> '1. Hapus hasil yang lama. Pakai delete xlshiftup juga bisa
>>         .Range("b4").CurrentRegion.Offset(1).Delete xlShiftUp
>>
>> '2. Copy data dari no sampai nominal1 ke hasil mulai baris pertama
>>         rngdata.Offset(1).Resize(rngdata.Rows.Count - 1,
>> rngdata.Columns.Count - 1).Copy
>>         .Range("b5").PasteSpecial xlPasteValues
>>         Application.CutCopyMode = False
>>
>> '3. hitung jumlah record + header di hasil dan simpan disebuah variabel
>>         lrecdata = rngdata.Rows.Count - 1
>>
>> End With
>>
>> '4. hide kolom nominal1 di data
>>
>> With Sheet1
>>         .Columns("D:D").EntireColumn.Hidden = True
>>
>>
>> '5. autofilter data pada kolom nominal2 yang tidak blank ("<>")
>>         rngdata.AutoFilter Field:=4, Criteria1:="<>"
>>
>> '6. data yang visible (gunakan specialcells visible) di copy dan paste ke
>> hasil dengan offset sebanyak variabel jumlah record (proses 3)
>>
>> rngdata.Offset(1).Resize(lrecdata).SpecialCells(xlCellTypeVisible).Copy
>>         Sheet2.Range("b4").Offset(lrecdata + 1).PasteSpecial xlPasteValues
>>
>>        'hilangkan garis2 copiedrange dan autofilter serta tampilkan
>> kembali kolom D
>>         Application.CutCopyMode = False
>>         rngdata.AutoFilter
>>         .Columns("D:D").EntireColumn.Hidden = False
>>
>> End With
>>
>> '7. hapus data nama di sheet hasil hanya pada hasil paste terakhir (hasil
>> proses 6)
>>
>>         Set rnghasil = Sheet2.Range("b4").CurrentRegion
>>         lrechasil = rnghasil.Rows.Count - 1
>>
>> With Sheet2
>>         .Range("b4").CurrentRegion.Offset(lrecdata + 1,
>> 1).Resize(lrechasil - lrecdata, 1).ClearContents
>>
>> '8. sort hasil berdasar kolom No secara menaik
>>         rnghasil.CurrentRegion.Sort .Range("b4"), xlAscending,
>> Header:=xlYes
>>
>> '9. hasil yang blank (gunakan specialcells celltypeblank) diisi formula
>> style R1C1 berbunyi : "=R[-1]C & ""(*)"""
>>         rnghasil.Offset(1, 1).Resize(lrechasil,
>> 1).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C&""(*)"""
>>
>>
>> '10. hasil (seluruh baris ya) di kolom No diberi formulaR1C1 :
>> "=n(R[-1]C)+1"
>>         rnghasil.Offset(1).Resize(lrechasil, 1).FormulaR1C1 =
>> "=N(R[-1]C)+1"
>>
>> '11. kalkulasi sheet hasil
>>         Sheet2.Calculate
>>
>> '12. copy paste special values area hasil
>>         rnghasil.CurrentRegion.Copy
>>         Sheet2.Range("b4").PasteSpecial xlPasteValues
>>         Application.CutCopyMode = False
>>
>> End With
>> End Sub
>>
>> Terima kasih sebelumnya, Wassalam
>> Sinurat
>>   ------------------------------
>> *Dari:* Kid Mr. <[email protected]>
>> *Kepada:* [email protected]
>> *Dikirim:* Kamis, 6 September 2012 13:00
>> *Judul:* Re: [belajar-excel] Makro Sisip Baris
>>
>> Bagi yang masih bingung caranya, silakan posting dengan judul thread :
>> VBA xx. nama prosesnya
>> Contoh :
>> bingung cara nomor 5, buat thread baru (posting email baru ke milis)
>> dengan subject :
>> VBA 05. Autofilter data kolom nominal2
>>
>> Jadi, seluruh proses diharapkan tetap menggunakan data dari Pak Imam
>> dulu, supaya sama dan seragam.
>> Harapannya bisa mempermudah proses belajar bersama.
>>
>> Selamat mencoba dan tetap semangat belajar.
>>
>> Wassalam,
>> Kid.
>>
>
>

Kirim email ke