ow thread ini sudah panjang...

baru lihat kalo ada reply-nya... sorry ya..

1. apakah tidak akan membuat size penyimpanan excel menjadi membengkak?
>> tentu akan membuat penyimpanannya semakin besar tapi gak bengkak.

2. Karena data yang sudah terecord saat ini sudah sekitar 1000 something..
>> kalau masih kisaran seratus ribu sih gak terlalu banyak ya.

3. Jadi saya bermaksud membuatkan rumus tersebut menjadi copy paste value
pada kolom tersebut.
>> formula yang Anda gunakan :
=IF(DAY(F2)<DAY(NOW()),DATE(YEAR(NOW()),MONTH(NOW()),DAY(F2)),DATE(YEAR(NOW()),MONTH(NOW())-1,DAY(F2)))

pertanyaannya adalah :
1. disana ada fungsi Now() yang bersifat volatile. Jika formula ini
di-values-ken, berarti setiap akan autofilter harus klik sesuatu untuk
update nilai dalam rumus. Gitu gak ?

2. Atau nilai *hasil formula itu harus tetap selamanya* segitu aja ?
misal data masuk hari ini 2013-10-25, apakah 300 hari kedepan, nilai di
cell itu harus tetap 2013-10-25 alias sama dengan hasil formula saat
memasukkan record tersebut dulu ?

Jika jawaban 1 adalah Ya, berarti nilai dalam cell tersebut akan bergerak
maju terus menerus mengikuti waktu manusia. Jawaban 2 tidak akan bisa
dijawab dengan Ya.

Jika jawaban 2 adalah Ya (jawaban 1 harus tidak), berarti nilai dalam cell
tidak bisa menggunakan formula dan lebih baik diolah saat record masuk saja.


4. Dan sebenarnya proses perhitungan tanggal ini akan berjalan setiap
harinya, karena untuk proses AutoFilter saat user(kita) mengklik tombol
untuk AutoFilternya.
>> si user ketika autofilter harus pada nilai hasil formula terbaru atau
pada hasil formula saat si record data masuk ke tabel ?
jika user saat autofilter membutuhkan nilai hasil formula :
a. terbaru, maka formula yang dibutuhkan.
     >> Jika dengan VBA, maka sebelum proses user autofilter harus ada
prosedur pembaruan nilai hasil formula yang dijalankan. Kalau tidak
dilakukan, berarti ada kemungkinan user memfilter data yang tidak update
nilai tanggalnya, misal saja beberapa hari tidak ada data yang masuk, maka
nilai hasil formula tidak terupdate

b. nilai saat record data masuk ke tabel, maka yang dibutuhkan adalah VBA
untuk membentuk nilai tanggal hasil formula dan menuliskannya ke cell
tempat record baru.


5. formulanya bisa disederhanakan menjadi :
=Date(  Year( Now() )  ,  Month( Now() )  -  (  Day(F2)<Day( Now() )  ) ,
Day(F2))   )

Penggunaan fungsi Now() dalam formula tersebut kurang membuat sreg...
kenapa ?
karena tingkat ketelitian yang dibutuhkan hanya per hari alias jika hari
berubah maka perlu kalkulasi baru, dan ndak perlu sampai per detik.
Jadi, lebih pas kalau pakai Today() daripada Now()

Formulanya akan menjadi :
=Date(  Year( Today() )  ,  Month( Today() )  -  (  Day(F2)<Day( Today() )
) ,  Day(F2))   )

Apa bedanya ?
>> dengan formula Now() (ingat... sifatnya volatile) maka setiap ada
perubahan akan membuat si fungsi Now() dikalkulasi.
      karena fungsi Now() memiliki ketelitian sampai level detik, maka
besar kemungkinan saat ada yang entry data di sheet nun jauh dimato sana,
terjadi pada detik yang berbeda dengan yang lagi disimpan oleh si Now()
     hasilnya, si Now() mengalami perubahan nilai. Akibatnya lagi, semua
formula yang pakai fungsi Now() harus dikalkulasi, ndak peduli apakah
berhubungan dengan data yang di entry atau tidak sama sekali....  pokoke
kalkulasi semua formula yang pakai Now().
>> dengan formula Today() (ingat.... sifatnya juga volatile) yang tingkat
ketelitiannya hanya sampai hari, maka pasti hasil Today() berubah kalau
sudah berganti hari komputer. Artinya, dihari yang sama, pada detik menit
atau jam beda yang belum membuat ganti hari, jika ada yang entry di sheet
antah berantah, tidak akan membuat nilai yang lagi disimpan Today()
mengalami perubahan, sehingga semua formula yang pakai Today() tidak perlu
di kalkulasi.


Ketika ada banyak baris yang pakai fungsi Today() apalagi pakai Now()....
maka akan muncul potensi terkalkulasinya formula berulang kali setiap Excel
melakukan kalkulasi. Jadi, sebaiknya hasil fungsi Today() apalagi Now(),
disimpan disebuah cell diluar tabel. *Misal di cell Z1 sheet Before.*
Jadi di Z1 itu diberi formula :
=Today()      [jangan Now() deh, wong butuh ketelitiannya hanya sampai
satuan hari saja kok]

Lalu formula diatas diubah menjadi :
=Date(  Year( *$Z$1* )  ,  Month( *$Z$1* )  -  (  Day(F2)<Day( *$Z$1* )  )
,  Day(F2))   )

kira-kira begitulah...
So, apa sudah beneran tepat milih VBA yang pasang formula begitu ? yakin
sesuai kebutuhan ?


Wassalam,
Kid.










2013/10/24 <[email protected]>

> **
>
>
> Dear Om Kid,
>
>
> Ini akan saya coba dlu om kid dengan penjelasan di atas.
>
> Tapi permasalahannya, apabila data yang akan disimpan semakin banyak,
> apakah tidak akan membuat size penyimpanan excel menjadi membengkak? Karena
> data yang sudah terecord saat ini sudah sekitar 1000 something.. Jadi saya
> bermaksud membuatkan rumus tersebut menjadi copy paste value pada kolom
> tersebut. Dan sebenarnya proses perhitungan tanggal ini akan berjalan
> setiap harinya, karena untuk proses AutoFilter saat user(kita) mengklik
> tombol untuk AutoFilternya.
>
>
> Sekian dari kasus yang saya tanyakan untuk destination range tersebut.
>
>
> Salam untuk semua beXcel..
>
>
> ---In [email protected], <[email protected]>
> wrote:
>
> Mau coba tanpa VBA ?
>
> pada sheet Before, pastikan W2 sampai W4 sudah berisi formula
> kemudian blok A1 sampai W4 -> ribbon Home -> group Styles -> format as
> table -> pilih salah salah satu styles -> centang my table has header
> coba copy data baru di A5 sampai A sekiun.
>
> Fitur ini bernama Excel Table diatas (xl2007 keatas) . Pada xl2003 bernama
> List yang bisa ditemui pada menu Data -> List
>
> Wassalam,
> Kid.
>
>
>
>
> 2013/10/23 aji suseno <ones_marle_oke@...>
>
>  **
>
>   Dear Master Suhu,
>
> Mohon bantuannya lagi dong untuk mengetahui saat kita menggunakan
> FormulaR1C1 pada macro VBA dan saat kita ingin copy rumus tersebut sampai
> Rows terakhir pada sheets yang sedang aktif.
> Karena klo saya record macro, ternyata macronya menunjukan rows awal rumus
> (example W2) dan rows akhir data (example W4). Tertulis seperti ini =>
> Selection.AutoFill Destination:=Range("W2:W4")
>
> Sedangkan suhu VBA, ternyata saya mempunyai data yang setiap harinya akan
> bertambah. Jadi secara otomatis rows akhir data tersebut kan menjadi
> bertambah juga (example penambahan data W10).
>
> Nah, itu bagaimana ya cara menentukan Destination:=Range ini supaya akan
> membaca pada rows terakhir.
> File excel terlampir ya master suhu VBA. Udah mumet nyoba-nyoba sendiri
> dengan rumus ajaib sendiri, tapi tetep BUG karena declaration range ga
> bener (alias Excel nya ikut mumet).
>
> Terima kasih om-om, tante-tante, mba-mba, mas-mas semuanya yang bisa
> membantuk Case ini.
>
> Lagi - lagi attachmentnya ga bisa diupload lewat email... :-(
> Saya upload di milis ini ya master semua.
>
>
> http://milis-belajar-excel.1048464.n5.nabble.com/Mengetahui-Destination-Range-terakhir-pada-Rows-workbook-attachment-saja-td5721745.html
>
>
>
>  
>

Kirim email ke