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®

-----Original Message-----
From: "Kid Mr." <[email protected]>
Sender: [email protected]
Date: Sun, 9 Sep 2012 21:50:57 
To: <[email protected]>
Reply-To: [email protected]
Subject: Re: [belajar-excel] Makro Sisip Baris

Insya Allah bukan karena kebetulan, tetapi karena usaha untuk memahami
setiap langkahnya.

Semoga hal ini menjadi modal untuk membuat lebih banyak proses otomasi
lainnya dalam pekerjaan.

Lampiran berikut memanfaatkan pivot table sebagai tabel antara.
Batasan : pengubahan jumlah record karena proses delete baris data tidak
dapat langsung meng-update hasil. Jika ada proses delete data, mohon tekan
refresh all (bisa melalui ribbon Data -> Refresh All)

Wassalam,
Kid.

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.
>
> 2012/9/6 Imam Sinurat <[email protected]>
>
> **
>
>  Salam Be-Excel..
>
> Mohon dibantu bagaimana kode makro menyisip baris dan mengisi data yang
> sesuai.
>
> Yang diinginkan adalah sbb:
> 1.    Semua record Tabel 1. ditampilkan kembali pada Tabel 2., baik Nama
> maupun Nominal1.
> 2.    Setiap record yang kolom Nominal2 ada nilainya, maka sisipkan satu
> baris kosong tepat dibawah record tersebut,
>         lalu isi nama yang sesuai dibubuhi tanda "(*)", dan Nominal2.
>
>     Terima kasih sebelumnya, wassalam
>     Imam F. Sinurat
>
>
>
>
>
>
>   
>

Kirim email ke