Terima kasih Mr Kid. Oh, jadi untuk melakukan fungsi "Evaluate" sel nya harus diselect dulu sedangkan formula bisa langsung..
Salam, Hendrik Karnadi ________________________________ From: Kid Mr. <[email protected]> To: [email protected] Sent: Monday, 10 September 2012, 11:36 Subject: Re: Fw: [belajar-excel] Makro Sisip Baris ops lupa belum di select application.referencestyle=xlr1c1 .range("b4")..Offset(rnghasil.Rows.Count, 2).select .range("b4")..Offset(rnghasil.Rows.Count, 2).value= Evaluate("=Sum(R[-1]C:R5C)") application.referencestyle=xla1 Kid. 2012/9/10 hendrik karnadi <[email protected]> > >Mr. Kid, > > >Setelah saya coba, hasilnya memang sdh berupa angka, tapiangkanya 1 bukan 37. > > >Mohon pencerahannya, terima kasih. > > >Salam, >Hendrik Karnadi > > > >________________________________ > >From: Kid Mr. <[email protected]> >To: [email protected] >Sent: Monday, 10 September 2012, 10:53 >Subject: Re: Fw: [belajar-excel] Makro Sisip Baris > > > > >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 <[email protected]> > > >> >>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. <[email protected]> >>To: [email protected] >>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 <[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. >>>> >>> >> >> >> > > >

