Kang Hendrik dan Mr Kid. supperr sekali... mesti bakal ngurangi income dari Overtime saat ini ( he he he ), tapi ini improve yang luar biasa.... terima kasih atas masukan solusinya... semoga Allah menjadikan ini ilmu amalan yg bermanfaat buat saya dan amal ibadah buat yang ngasih... regards Jamal --- In [email protected], hendrik karnadi <hendrikkarnadi@...> wrote: > > Coba juga dengan macro di bawah ini. > Data seperti yang disajikan dan kita beri nama Sheet Data sementara hasilnya > kita letakkan di Sheet Hasil (judul sdh dibuat namun isinya kosong) > Hasill akan dimulai dari Range("A2") di Sheet Hasil. > > Sub DataBase() >    Dim source As Range >    Dim dest As Range >    Dim tgl As Range >    Set source = Sheets("Data").Range("A2").CurrentRegion >    Set source = source.Offset(2, 0).Resize(source.Rows.Count - 2) >    Set dest = Sheets("Hasil").Range("A2") >    Set tgl = Sheets("Data").Range("B2", Range("B2").End(xlToRight)) >    For i = 1 To WorksheetFunction.Count(tgl) >        source.Columns(1).Copy dest >        dest.Offset(0, 1).Resize(source.Rows.Count).Value = tgl(i) >        source.Columns(i + 1).Copy dest.Offset(0, 2) >        Set dest = dest.Offset(source.Rows.Count) >    Next i >   Sheets("Hasil").Select > > End Sub > > Salam, > > Hendrik Karnadi > > > > ________________________________ > From: Kid Mr. <mr.nmkid@...> > To: [email protected] > Sent: Tuesday, 14 August 2012, 22:09 > Subject: Re: [belajar-excel] Convert bentuk report ke database > > >  > Hai Jamal, > > Misal tabel hasil diletakkan mulai cell L2 (3 kolom x N baris) dengan baris 2 > adalah header tabel hasil dan baris 3 adalah record pertama hasil. > >> Formula di tabel hasil kolom Item cell L3 : > =IF(ROW()-ROW($L$2)>COUNTA($B$3:$C$15),"",INDEX($A$3:$A$15,MOD(ROW()-ROW($L$2)-1,COUNTA($A$3:$A$15))+1)) > > >> Formula di tabel hasil kolom Date cell M3 : > =IF(ROW()-ROW($L$2)>COUNTA($B$3:$C$15),"",INDEX($B$2:$C$2,1,(ROW()-ROW($L$2)-1)/COUNTA($A$3:$A$15)+1)) > > >> Formula di tabel hasil kolom Qty cell N3 : > =IF(ROW()-ROW($L$2)>COUNTA($B$3:$C$15),"",INDEX($B$3:$C$15,MOD(ROW()-ROW($L$2)-1,COUNTA($A$3:$A$15))+1,(ROW()-ROW($L$2)-1)/COUNTA($A$3:$A$15)+1)) > > Perhatikan yang diberi warna. > Biru :: untuk menentukan baris data yang harus diambil > Merah :: untuk menentukan kolom data yang harus diambil > > Pelajari juga cara membuat nama range yang dinamis, sehingga rujukan ke data > seperti $B$3:$C$15 atau $A$3:$A$15 atau $B$3:$C$15 bisa lebih dinamis. > > Wassalam, > Kid. > > > > 2012/8/14 Xancheel <xancheel@...> > > > > > >Dear Para Master dan Suhu BeExceler. > > > > > >Saya selalu dapet report dari kantor cabang berupa report secara rutin > >setiap minggu berupa report pencapaian harian. > >seiring waktu report ini berisi item yang semakin banyak (saat ini 400item > >per report). > >untuk mempermudah dalam membuat analisa dan laporan dari data cabang > >tersebut, saya merubah bentuk report ke database model (sebagaiman > >terlampir). > >namun karena cabang semakin banyak, merubah bentuk data ini semakin menyita > >waktu. > >seandainya ada rekan-rekan BeExceler ada yang pernah menghadapinya, > >berkenankah untuk berbagi solusinya ? > > > > > >regards > >Jamal > > > > > > >

