Coba : application.referencestyle=xlr1c1 .range("b4")..Offset(rnghasil.Rows.Count, 2).value= Evaluate("=Sum(R[-1]C:R5C)") application.referencestyle=xla1
Wassalam, Kid. 2012/9/10 hendrik karnadi <hendrikkarn...@yahoo.com> > ** > > > Boleh ikutan Mr Kid ? > > Saya coba alternatif 3, dengan menambahkan kode seperti ini" > .Range("b4").Offset(rnghasil.Rows.Count, 2).FormulaR1C1 = > Evaluate("=Sum(R[-1]C:R5C)") > hasilnya #VALUE! tetapi kalau Evaluate dan () dihilangkan (kembali ke > alternatif1) maka hasilnya OK (37). > > Yang ingin saya tanyakan bagaimana penulisan Evaluate yang benar. > > Terima kasih. > > Salam, > Hendrik Karnadi > > > ----- Forwarded Message ----- > *From:* Kid Mr. <mr.nm...@gmail.com> > *To:* belajar-excel@yahoogroups.com > *Sent:* Monday, 10 September 2012, 8:29 > *Subject:* Re: [belajar-excel] Makro Sisip Baris > > > 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 <sin.u...@yahoo.com> > > ** > > 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 <sin.u...@yahoo.com> > > > 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. <mr.nm...@gmail.com> > *Kepada:* belajar-excel@yahoogroups.com > *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. > > > > > > >