Pak Lukman,

Kalau ndak salah tangkep maksudnya adalah ada data yang key-nya tidak
ditulis disemua baris, tetapi hanya di baris-baris pertama kali si key
muncul. Jadi baris berikutnya, yang key-nya sama dengan record sebelumnya
akan berupa cell kosong.

Coba pelajari proses manualnya dulu. Setelah bisa memahami alur manualnya,
baru coba ulangi proses manual itu dengan disertai record macro. Kalau
sudah dapat record macronya nanti, baru mulai pasang deklarasi variabel
untuk range datanya dan sebagainya. Hasil akhirnya akan didapat proses utuh
untuk hal tersebut.

Coba proses manual ini.
Asumsi, kolom kosong mulai ada di kolom AB.
1. klik cell AB2 dan pasang formula :
=AB1

2. klik AB2 yang berisi formula itu, lalu copy (tekan CTRL  C)

3. ke tabel data, blok header beserta datanya hanya pada kolom-kolom key
(atau kolom-kolom yang memiliki blank cell yang akan diisi).
Misal header dan data tersebut adalah di A1 sampai D12345 yang merupakan
kolom-kolom key ada blank cell yang mau disi. Kolom setelah D (mulai E
sampai Z) adalah kolom yang sudah terisi penuh atau bukan key.
maka blok A1:D12345

4. tekan CTRL  G  -> tekan tombol Special -> pilih blankcells -> tekan OK
>> bagian ini adalah goto -> special -> blank cells

5. sudah dapat cell blank ter-select oleh proses nomor 4, maka paste (tekan
CTRL V)

6. Lanjutkan dengan paste values
>> Blok seluruh kolom A sampai D -> tekan CTRL C -> klik kanan yang terblok
-> pilih Paste Special -> pilih Values -> tekan OK

7. selesai.

Maka seluruh kolom key sudah terisi penuh, dan proses loop bisa dipanggil
untuk memproses data yang sudah penuh terisi tersebut.

Wassalam,
Kid.







2012/11/8 lkm jktind <[email protected]>

> **
>
>
> Pak Kid.
>
> Terima kasih .
>
> Sudah dapat saya selesaikan sesuai dengan kebutuhan saya.
> Mohon do koreksi.
> Hanya masih belum tau cara mendapatkan . bila salah input kode transaksi
> dengan salah input no Acc yg nga ada
>
>
> adapun untuk mempelajari macro untuk excel . buku apakah yg di sarankan ?
> Visual basic ,   visual basic 6,   visual basic for aplication    apakah
> semua ini bisa di gunakan untuk macro excel ?
>
> Salam
>
> Lukman
>
>
>
> 2012/11/3 Mr. Kid <[email protected]>
>
>> **
>>
>>
>> Bagaimana ya cara menjelaskannya...
>>
>> Mungkin lihat file terlampir saja ya...
>>
>> Tapi, cuplikannya seperti ini :
>>
>>   Tanya     Set rngRef =
>> Sheet5.Range("a1").CurrentRegion                      --- kenapa sheet
>> 5  ? (bukankah sheet database adanya di sheet 2)  Tanya     Set rngLibur
>> = Sheet5.Range("n1").CurrentRegion.Resize(, 1)   --  kenapa di sheet 5
>> ?     cell N1 --- daftar hari libur.  Jawab Sheet5 (bukan sheet 5)
>> adalah nama object class dari worksheet. Lihat di VBE frame VBA Project
>> (Project Explorer)  Jawab
>>  Tanya             If LenB(.Value) <> 0
>> Then                                              --- kok bisa di namai
>> B     lenB     Jawab LenB( bla ) dan bukan Len B atau LenB.  Jawab LenB
>> adalah sebuah fungsi untuk menghitung jumlah karakter suatu nilai data
>> bertipe string (teks) dalam satuan byte.  Jawab Yang umum dikenal adalah
>> fungsi Len, yang menghitung jumlah karakter suatu nilai data. Jadi, hasil
>> LenB akan diubah oleh VB engine menjadi hasil Len.  Jawab Fungsi selalu
>> diikuti buka kurung. Coba lihat semua fungsi dalam worksheet yang dipakai
>> di formula, seperti :  Jawab =VLookUp(  bla , bla, bla,bla )   atau
>> =Sum(   bla:bla   )  Jawab Selalu diikuti buka kurung bukan ?  Jawab
>>  Tanya    .Offset(0, -1).Value = UCase$(.Offset(0, -1).Value)      ---
>> huruf  $  ini mewakili apa dan apa gunanya ?  Jawab UCase$ adalah nama
>> fungsi. Sedangkan .Offset(0, -1).Value adalah nilai inputan ke parameter
>> yang diminta si fungsi  Jawab Coba perhatikan ketika membuat formula di
>> worksheet, seperti =VLookUp(  , maka user harus mengisi suatu nilai yang
>> diminta oleh VLookUp bukan ?  Jawab Itu namanya nilai untuk inputan bagi
>> input parameter fungsi.  Jawab Fungsi UCase$ adalah fungsi untuk
>> mengubah seluruh karakter menjadi huruf kapital (seperti UCase), tetapi
>> input parameternya adalah string (teks)  Jawab Jadi, pada fungsi UCase,
>> input parameter adalah bertipe variant.  Jawab Coba perhatikan di VBE
>> ketika menulis :  Jawab UCase$(   akan muncul tooltip berbunyi  Ucase$(
>> String as string ) as string  Jawab ketika menulis :  Jawab UCase(  akan
>> muncul tooltip berbunyi Ucase( String  )  as string  Jawab Karena tidak
>> ada definisi jelas seperti yang diberi warna merah, maka tipe data pada
>> Ucase adalah Variant.  Jawab Tipe data variant memakan ruang memori
>> lebih banyak, sehingga relatif lebih lambat diproses.  Jawab
>>  Tanya Dim rngDT As Range, rngLoopDT As Range                         --
>> dengan memakai as range  -- mungkin arti nya bila data bertambah akan  di
>> loop mengikuti jumlah rows yg ada ?  Jawab Tidak.  Jawab Tidak ada
>> hubungannya penggunaan tipe data range dengan bertambah atau berkurangnya
>> data dimanapun berada.  Jawab Dipilih menggunakan tipe data range,
>> karena akan memproses memanfaatkan bendanya. Excel adalah kumpulan range,
>> bukan kumpulan nomor baris dan nomor kolom.  Jawab Untuk membuat
>> variabel bertipe range dapat menyesuaikan dengan jumlah record yang ada,
>> Jawab dibutuhkan perintah yang detil dalam menentukan area range yang
>> harus disimpan dalam variabel bertipe range itu.  Jawab Artinya,
>> variabel selalu bersifat pasif karena memang tugasnya hanya menyimpan
>> sesuatu yang diamanahkan kepadanya untuk disimpan  Jawab
>>  Tanya Dim rngDT As Range, rngLoopDT As Range                         --
>> dengan memakai as range  -- mungkin arti nya bila data bertambah akan  di
>> loop mengikuti jumlah rows yg ada ?  Tanya -- beda nya  rngDT  dengan
>> rngLoopDT  ?   mungkin kah artinya : rngDT --- data yg ada   akan di
>> loop  sebanyak  rngLoopDT ?  Jawab rngDT :: rencananya sih (jadi ini
>> alasan pribadi, dan bukan aturan baku) akan digunakan untuk menyimpan data
>> disuatu range yang ada di sheet inputan  Jawab rngLoopDT :: untuk
>> menyimpan data di rngDT yang sedang diproses saat loop dengan for each nanti
>> Jawab Jadi, rngDT bukan berarti data yang akan di loop sebanyak rngLoopDT
>> Jawab tapi rngLoopDT adalah wadah untuk menyimpan range dari rngDT yang
>> sedang diproses ketika melakukan loop dengan For Each  Jawab
>>  Tanya Dim dblRefFee As
>> Double                                                  --  Pakai
>> double  dan Long  beda nya dimana ?  Jawab Coba pelajari (lihat di Help
>> atau browsing internet dengan key Data Type) tentang tipe data.  Jawab Tipe
>> data skalar jenis Double dapat menyimpan bilangan pecahan pada interval
>> nilai tertentu.  Jawab Tipe data skalar jenis Long dapat menyimpan
>> bilangan bulat pada interval nilai tertentu.  Jawab Pertanyaannya, kapan
>> suatu bilangan Anda sebut bilangan pecahan ? Dan kapan akan Anda sebut
>> bahwa suatu bilangan itu bilangan bulat ?  Jawab Setelah dapat kepastian
>> nilai datanya bertipe numerik sebagai bilangan bulat atau pecahan, maka
>> bisa ditentukan apakah akan menggunakan Double atau Long.  Jawab
>>  Permintaan Kalau nga keberatan . mohon di tampilkan no row nya di work
>> sheet - agar lebih mudah saya mempelajari nya .  Permintaan Karena saya
>> mau tambahkan dengan  nilai beli , jual dan total transaksi per  konfirmasi.
>> Jawab Keberatan sih nggak…  Jawab Bukannya malah akan lebih bermanfaat
>> ketika Anda bisa melakukannya sendiri ?  Jawab Dengan memahami nomor row
>> apa yang dikehendaki, maka bisa diketahui nomor row itu adalah nomor row di
>> data yang mana.  Jawab Dengan tahu data yang mana yang akan diambil
>> row-nya, maka dapat diketahui baris-baris script yang mana yang memproses
>> data tersebut  Jawab Dengan diketahui bari-baris script yang memproses
>> data tersebut, bisa diketahui apakah nilai (bisa bertipe apa saja) yang
>> diproses atau benda yang diproses  Jawab Dengan diketahui apa yang
>> diproses, maka akan ada ide untuk mendapatkan nilai row yang diharapkan
>> Jawab Kemudian ditulis bagaimana cara mendapatkan nilai row itu  Jawab Ketika
>> sudah didapat, maka akan ada proses pengambilan keputusan untuk menyimpan
>> dimana dalam bentuk apa  Jawab Apakah langsung sebagai nilai rownya yang
>> ditulis dalam sebuah cell, atau akan disimpan disebuah variabel lebih dulu
>> Jawab Ketika akan menulis di cell tertentu, cell yang manakah ?
>> Bagaimana cara sampai ke cell tersebut dari cell-cell data inputan yang
>> sedang diproses ?  Jawab Kemudian ditulis deh script hasil karya
>> pemikiran tersebut.  Jawab Hal ini memang panjang, butuh kesabaran
>> (pintu pertama ilmu pengetahuan), dan penuh kesulitan (tidak ada perwujudan
>> kebaikan akan melalui jalan yang mudah)  Jawab tapi hasilnya adalah
>> suatu pemberian (kata orang adalah anugerah) yang sulit diambil oleh pihak
>> lain  Jawab Bagaimana ? Mau mencoba sampai puyeng dulu ?  Jawab Alasan
>> sudah dekat deadline adalah alasan klise. Jadi, kalau alasannya sudah dekat
>> deadline, pakai formula dulu saja… wakakakka…  Jawab
>>  Wassalam,
>> Kid.
>>
>>
>>
>>
>> 2012/11/3 lkm jktind <[email protected]>
>>
>>> **
>>>
>>>
>>> Pak Kid
>>> Tanya :
>>>
>>>     Set rngRef = Sheet5.Range("a1").CurrentRegion
>>> --- kenapa sheet 5  ? (bukankah sheet database adanya di sheet 2)
>>>     Set rngLibur = Sheet5.Range("n1").CurrentRegion.Resize(, 1)   --
>>> kenapa di sheet 5 ?     cell N1 --- daftar hari libur.
>>>
>>>
>>>     For Each rngLoopDT In rngDT.Resize(, 1).Offset(1, 4)
>>>         With rngLoopDT
>>>             If LenB(.Value) <> 0
>>> Then                                              --- kok bisa di namai
>>> B     len*B*
>>>
>>>                 .Offset(0, -1).Value = UCase$(.Offset(0, -1).Value)      ---
>>> huruf  $  ini mewakili apa dan apa gunanya ?
>>>
>>>     Dim rngDT As Range, rngLoopDT As Range                         --
>>> dengan memakai as range  -- mungkin arti nya bila data bertambah akan  di
>>> loop mengikuti jumlah rows yg ada ?
>>>
>>> --  beda nya  rngDT  dengan  rngLoopDT
>>>
>>>
>>>               mungkin kah artinya : rngDT --- data yg ada   akan di
>>> loop  sebanyak  rngLoopDT ?
>>>     Dim dblRefFee As
>>> Double                                                  --  Pakai
>>> double  dan Long  beda nya dimana ?
>>>
>>>    sekian dulu pertanyan dari saya .
>>>
>>> Mohon di koreksi .
>>>
>>> Kalau nga keberatan . mohon di tampilkan no row nya di work sheet - agar
>>> lebih mudah saya mempelajari nya .
>>>
>>> Karena saya mau tambahkan dengan  nilai beli , jual dan total transaksi
>>> per  konfirmasi.
>>>
>>>
>>>
>>> Terima kasih.
>>>
>>>
>>> Salam
>>>
>>> Lukman
>>>
>>>
>>
>  
>

Kirim email ke