Rabu, 26 Desember 2012

[belajar-excel] Digest Number 1987

15 New Messages

Digest #1987
2a
Re: filter drop down list by "Faisal Hasman" revolter_ichal
2b
Re: filter drop down list by "Faisal Hasman" revolter_ichal
3a
Re: HT List by "Jan Raisin"
3b
Re: HT List by "Abang Jakarta" budi170177
5a
Re: Mengubah angka hasil dari database menjadi huruf by "agung.widodo01@id.panasonic.com" aghoenx1
6a
Re: Form Data by "Andre Rahmaidy Teeza" andre_teeza_bn
6b
Re: Form Data by "Andre Rahmaidy Teeza" andre_teeza_bn
6c
Re: Form Data by "Mr. Kid" nmkid.family@ymail.com
6d
Re: Form Data by "Andre Rahmaidy Teeza" andre_teeza_bn
7a
Formula Dinamis by "Adi" abduh_suryadi
7b
Re: Formula Dinamis by "Mr. Kid" nmkid.family@ymail.com

Messages

Tue Dec 25, 2012 3:34 pm (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Hai Adi,

> field waktu tidak dapat menampilkan format waktu di excel
>> Tipe data tabel di db untuk field waktu apa ya...
Biasanya hasil copyfromrecordset akan tampil di-Excel sesuai tipe datanya.
Apakah tipe data field waktu bukan datetime ?
Jika bukan datetime, bagaimana format penulisan waktu dalam field waktu
tersebut ? (umumnya ditulis dengan format HH:mm:ss)
Bagaimana jika field tanggal dan field waktu dijadikan satu menjadi field
waktu_ujian dengan tipe data datetime ?

btw, lepas dari semua itu. *
Anggap saja tipe data field waktu dalam db bukanlah bertipe datetime tapi
dalam format waktu HH:mm:ss* dan nama-nama fieldnya adalah
ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\dst
serta tetap ingin menggunakan methods copyfromrecordset, coba querynya
diubah menjadi : (query untuk ms access)
SELECT ID,Tanggal,*CDate(*Waktu*) as
jam*,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...,dst

FROM Jawaban

Jika akan menggunakan loop dalam menulis ke setiap cell Excel, maka query
masih bisa dengan :
SELECT * FROM Jawaban
kemudian loop dari record pertama sampai record terakhir (EOF)
yang didalamnya menulis semua field per record yang diproses oleh loop.
Jika Excel tetap tidak langsung mengkonversi tipe data field waktu menjadi
bertipe datetime dalam cell, maka lakukan konversi tipe data pada nilai
waktu.
Kira-kira bunyinya seperti ini :

Dim sSQL As String
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
dim lRowOffset as long, lColOffset as long, lFields as long
dim rngAnchor as range

'misal hasil query ditulis di sheet bernama Answer dengan header terkiri di
A1
set rngAnchor=sheets("Answer").range("a1")

Set cn = New ADODB.Connection

cn.Open "Provider=Microsoft.ACE.OLEDB.
12.0;Data Source=" &
Environ("UserProfile") & "\Desktop\jwb.accdb;Persist Security
Info=False"

Set rs = New ADODB.Recordset

sSQL = "Select * from Jawaban"

rs.Open sSQL, cn, adOpenKeyset, adLockOptimistic

if rs.recordcount>0 then
lrowoffset=1
rs.movefirst
lfields=rs.fields.count -1 'index field adalah base 0
do while not rs.eof
with rnganchor
for lcoloffset=0 to lfields
.offset(lrowoffset,lcoloffset).value =
rs.fields(lcoloffset).value
next lcoloffset
end with
lrowoffset=lrowoffset+1
rs.movenext
loop
endif

rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

> ujian semester menggunakan Excel 2007. ketika menekan tombol selesai,
data jawaban akan tersimpan ke table jawaban.
siswanya berjumlah 700 orang. 1 materi saja mempunyai 50 soal. Fields :
ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\dst
>> Biasanya, untuk database yang ingin menampung data seperti demikian,
setidaknya akan dibagi menjadi 3 tabel, yaitu :
1. Tabel siswa (NoIndukSiswa,Nama,Kelas,no_ujian)
2. Tabel ujian (IDMateri,Materi,Kelas,TglUjian)
3. Tabel jawaban (noUjian,IDMateri,NoIndukSiswa,TglKumpul,NoSoal,Jawaban)
Kunci jawaban disimpan dengan NoUjian 0.
Komputasi mengkalkulasi nilai jawaban bisa dilakukan dengan klausa JOIN
Komputasi menyusun data source untuk output (fact table) juga disusun
dengan klausa JOIN
Biasanya menampilkan jawaban para siswa beserta nilai masing-masing
dilakukan per materi dan jarang untuk seluruh materi sekaligus.

asumsi ada 20 materi per kelas dan ada 100 kelas dengan ujian per materi
sebanyak 5 kali dalam 2 semester, akan ada 700M record.
Kadang data seperti tabel jawaban dibagi menjadi data per kelas per
semester (andai database engine tidak memiliki kemampuan membuat partisi
data).
Maka jumlah record sekitar 3.5M. Sepertinya MS Access masih mampu untuk
record sebanyak 3.5M
Excel dengan 1M baris per sheet, digunakan untuk menampilkan output per
materi. Andai saja juga ditampilkan per ujian, maka jumlah record sekitar
35K.
Seluruh proses komputasi diusahakan dilakukan pada sisi database dan
sesedikit mungkin yang dikomputasi oleh Excel.

Andai field dibuat berorientasi horisontal seperti yang ada sekarang,
komputasi yang dilakukan disisi database akan membutuhkan kalimat query
yang relatif panjang.

Wassalam,
Kid.

2012/12/25 Adi <abduhsuryadi@gmail.com>

> **
>
>
> Sebenarnya database access ini bertujuan untuk menampung jawaban
> santriwati di pondok saya yang ujian semester menggunakan Excel 2007.
> Setiap santriwati ketika menekan tombol selesai, data jawaban mereka
> akan tersimpan ke table jawaban.
> kalau jawaban dibuat menjadi record tersendiri, dapat dibayangkan berapa
> record yang akan terbentuk jika siswanya berjumlah 700 orang. padahal 1
> materi saja mempunyai 50 soal.
>
> lebih lengkapnya desain field table jawaban seperti ini:
> ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\
> dst
>
> Izinkan saya untuk bertanya lagi Mr... sya menulis kode berikut untuk
> mengambil kembali data yang ada di access ke excel menggunakan
> copyfromrecordset. yang jadi masalah adalah, field waktu tidak dapat
> menampilkan format waktu di excel, hanya tanggal saja yang ada di field
> waktu.
> Minta pencerahannya...wassalam.
>
> Sub DapatkanData()
>
> Dim sSQL As String
> Dim rs As ADODB.Recordset
> Dim cn As ADODB.Connection
>
> Set cn = New ADODB.Connection
>
> cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &
> Environ("UserProfile") & "\Desktop\jwb.accdb;Persist Security
> Info=False"
>
> Set rs = New ADODB.Recordset
>
> sSQL = "Select * from Jawaban"
>
>
> rs.Open sSQL, cn, adOpenKeyset, adLockOptimistic
>
> Cells(5, 2).CopyFromRecordset rs
>
>
> rs.Close
> Set rs = Nothing
> cn.Close
> Set cn = Nothing
> End Sub
>
> --- In belajar-excel@yahoogroups.com, "Mr. Kid" wrote:
> >
> > Oh gitu.
> >
> > Maksud saya, kenapa tabel tidak dibuat berupa 2 kolom bernama Nomor
> > (kolom1) dan jawab(kolom2).
> > Jadi data setiap nomor akan jadi 1 record alias sekali input akan ada
> > penambahan 50 record.
> >
> > Wassalam,
> > Kid.
> > On Dec 25, 2012 9:18 AM, "Adi" abduhsuryadi@... wrote:
> >
> > > **
>
> > >
> > >
> > > kalau yang itu, sudah saya coba pak,dan alhmdlillah sukses. kodenya
> > > seperti ini:
> > >
> > > dim myField as String
> > > dim myInt as Integer
> > >
> > > With rs
> > > .AddNew
> > >
> > > For myInt = 1 To 50
> > > myField = myField & IIf(IsNull(Range("F" & myInt)) Or Range("F" &
> myInt) =
> > > "", "0", Range("F" & myInt))
> > > Next
> > >
> > > .Fields("Jawaban") = myField
> > > .Update
> > > End With
> > >
> > > --- In belajar-excel@yahoogroups.com, "Mr. Kid" mr.nmkid@ wrote:
> > > >
> > > > Sama-sama.
> > > >
> > > > Kalau boleh bertanya, apakah mungkin jika tabelnya diubah menjadi
> > > memiliki
> > > > kolom Nomor dan Jawaban (2 kolom) saja ?
> > > >
> > > > Wassalam,
> > > > Kid.
> > > >
>
>
>

Wed Dec 26, 2012 1:01 am (PST) . Posted by:

"Adi" abduh_suryadi

Terima kasih banyak atas sarannya Mr. saya mengubah sSQL menjadi:
"Select *, cDate(Waktu) From Jawaban".
kalau saya rinci, maka panjang sekali jadinya, karena table jawaban mempunyai hampir 60 field (atau mgkn ada caranya?).
field tanggal bertipe datetime dengan default value Date()
sedangkan field waktu bertipe datetime dengan defaultvalue Now().
tapi untuk efisiensi, field waktu saya hapus dan field tanggal saya ubah defaultnya ke now().

untuk kode yang bapak buat, sudah saya coba, tapi field waktu ternyata tidak bisa menampilkan format waktu, yang terambil hanya tanggalnya saja.

sekali lagi, terima kasih banyak atas sarannya pak.
wassalam...

--- In belajar-excel@yahoogroups.com, "Mr. Kid" <mr.nmkid@...> wrote:
>
> Hai Adi,
>
> > field waktu tidak dapat menampilkan format waktu di excel
> >> Tipe data tabel di db untuk field waktu apa ya...
> Biasanya hasil copyfromrecordset akan tampil di-Excel sesuai tipe datanya.
> Apakah tipe data field waktu bukan datetime ?
> Jika bukan datetime, bagaimana format penulisan waktu dalam field waktu
> tersebut ? (umumnya ditulis dengan format HH:mm:ss)
> Bagaimana jika field tanggal dan field waktu dijadikan satu menjadi field
> waktu_ujian dengan tipe data datetime ?
>
> btw, lepas dari semua itu. *
> Anggap saja tipe data field waktu dalam db bukanlah bertipe datetime tapi
> dalam format waktu HH:mm:ss* dan nama-nama fieldnya adalah
> ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\dst
> serta tetap ingin menggunakan methods copyfromrecordset, coba querynya
> diubah menjadi : (query untuk ms access)
> SELECT ID,Tanggal,*CDate(*Waktu*) as
> jam*,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...,dst
>
> FROM Jawaban
>
> Jika akan menggunakan loop dalam menulis ke setiap cell Excel, maka query
> masih bisa dengan :
> SELECT * FROM Jawaban
> kemudian loop dari record pertama sampai record terakhir (EOF)
> yang didalamnya menulis semua field per record yang diproses oleh loop.
> Jika Excel tetap tidak langsung mengkonversi tipe data field waktu menjadi
> bertipe datetime dalam cell, maka lakukan konversi tipe data pada nilai
> waktu.
> Kira-kira bunyinya seperti ini :
>
> Dim sSQL As String
> Dim rs As ADODB.Recordset
> Dim cn As ADODB.Connection
> dim lRowOffset as long, lColOffset as long, lFields as long
> dim rngAnchor as range
>
> 'misal hasil query ditulis di sheet bernama Answer dengan header terkiri di
> A1
> set rngAnchor=sheets("Answer").range("a1")
>
> Set cn = New ADODB.Connection
>
> cn.Open "Provider=Microsoft.ACE.OLEDB.
> 12.0;Data Source=" &
> Environ("UserProfile") & "\Desktop\jwb.accdb;Persist Security
> Info=False"
>
> Set rs = New ADODB.Recordset
>
> sSQL = "Select * from Jawaban"
>
> rs.Open sSQL, cn, adOpenKeyset, adLockOptimistic
>
> if rs.recordcount>0 then
> lrowoffset=1
> rs.movefirst
> lfields=rs.fields.count -1 'index field adalah base 0
> do while not rs.eof
> with rnganchor
> for lcoloffset=0 to lfields
> .offset(lrowoffset,lcoloffset).value =
> rs.fields(lcoloffset).value
> next lcoloffset
> end with
> lrowoffset=lrowoffset+1
> rs.movenext
> loop
> endif
>
> rs.Close
> Set rs = Nothing
> cn.Close
> Set cn = Nothing
>
> > ujian semester menggunakan Excel 2007. ketika menekan tombol selesai,
> data jawaban akan tersimpan ke table jawaban.
> siswanya berjumlah 700 orang. 1 materi saja mempunyai 50 soal. Fields :
> ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\dst
> >> Biasanya, untuk database yang ingin menampung data seperti demikian,
> setidaknya akan dibagi menjadi 3 tabel, yaitu :
> 1. Tabel siswa (NoIndukSiswa,Nama,Kelas,no_ujian)
> 2. Tabel ujian (IDMateri,Materi,Kelas,TglUjian)
> 3. Tabel jawaban (noUjian,IDMateri,NoIndukSiswa,TglKumpul,NoSoal,Jawaban)
> Kunci jawaban disimpan dengan NoUjian 0.
> Komputasi mengkalkulasi nilai jawaban bisa dilakukan dengan klausa JOIN
> Komputasi menyusun data source untuk output (fact table) juga disusun
> dengan klausa JOIN
> Biasanya menampilkan jawaban para siswa beserta nilai masing-masing
> dilakukan per materi dan jarang untuk seluruh materi sekaligus.
>
> asumsi ada 20 materi per kelas dan ada 100 kelas dengan ujian per materi
> sebanyak 5 kali dalam 2 semester, akan ada 700M record.
> Kadang data seperti tabel jawaban dibagi menjadi data per kelas per
> semester (andai database engine tidak memiliki kemampuan membuat partisi
> data).
> Maka jumlah record sekitar 3.5M. Sepertinya MS Access masih mampu untuk
> record sebanyak 3.5M
> Excel dengan 1M baris per sheet, digunakan untuk menampilkan output per
> materi. Andai saja juga ditampilkan per ujian, maka jumlah record sekitar
> 35K.
> Seluruh proses komputasi diusahakan dilakukan pada sisi database dan
> sesedikit mungkin yang dikomputasi oleh Excel.
>
> Andai field dibuat berorientasi horisontal seperti yang ada sekarang,
> komputasi yang dilakukan disisi database akan membutuhkan kalimat query
> yang relatif panjang.
>
> Wassalam,
> Kid.
>
>
> 2012/12/25 Adi <abduhsuryadi@...>
>
> > **
> >
> >
> > Sebenarnya database access ini bertujuan untuk menampung jawaban
> > santriwati di pondok saya yang ujian semester menggunakan Excel 2007.
> > Setiap santriwati ketika menekan tombol selesai, data jawaban mereka
> > akan tersimpan ke table jawaban.
> > kalau jawaban dibuat menjadi record tersendiri, dapat dibayangkan berapa
> > record yang akan terbentuk jika siswanya berjumlah 700 orang. padahal 1
> > materi saja mempunyai 50 soal.
> >
> > lebih lengkapnya desain field table jawaban seperti ini:
> > ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\
> > dst
> >
> > Izinkan saya untuk bertanya lagi Mr... sya menulis kode berikut untuk
> > mengambil kembali data yang ada di access ke excel menggunakan
> > copyfromrecordset. yang jadi masalah adalah, field waktu tidak dapat
> > menampilkan format waktu di excel, hanya tanggal saja yang ada di field
> > waktu.
> > Minta pencerahannya...wassalam.
> >
> > Sub DapatkanData()
> >
> > Dim sSQL As String
> > Dim rs As ADODB.Recordset
> > Dim cn As ADODB.Connection
> >
> > Set cn = New ADODB.Connection
> >
> > cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &
> > Environ("UserProfile") & "\Desktop\jwb.accdb;Persist Security
> > Info=False"
> >
> > Set rs = New ADODB.Recordset
> >
> > sSQL = "Select * from Jawaban"
> >
> >
> > rs.Open sSQL, cn, adOpenKeyset, adLockOptimistic
> >
> > Cells(5, 2).CopyFromRecordset rs
> >
> >
> > rs.Close
> > Set rs = Nothing
> > cn.Close
> > Set cn = Nothing
> > End Sub
> >
> > --- In belajar-excel@yahoogroups.com, "Mr. Kid" wrote:
> > >
> > > Oh gitu.
> > >
> > > Maksud saya, kenapa tabel tidak dibuat berupa 2 kolom bernama Nomor
> > > (kolom1) dan jawab(kolom2).
> > > Jadi data setiap nomor akan jadi 1 record alias sekali input akan ada
> > > penambahan 50 record.
> > >
> > > Wassalam,
> > > Kid.
> > > On Dec 25, 2012 9:18 AM, "Adi" abduhsuryadi@ wrote:
> > >
> > > > **
> >
> > > >
> > > >
> > > > kalau yang itu, sudah saya coba pak,dan alhmdlillah sukses. kodenya
> > > > seperti ini:
> > > >
> > > > dim myField as String
> > > > dim myInt as Integer
> > > >
> > > > With rs
> > > > .AddNew
> > > >
> > > > For myInt = 1 To 50
> > > > myField = myField & IIf(IsNull(Range("F" & myInt)) Or Range("F" &
> > myInt) =
> > > > "", "0", Range("F" & myInt))
> > > > Next
> > > >
> > > > .Fields("Jawaban") = myField
> > > > .Update
> > > > End With
> > > >
> > > > --- In belajar-excel@yahoogroups.com, "Mr. Kid" mr.nmkid@ wrote:
> > > > >
> > > > > Sama-sama.
> > > > >
> > > > > Kalau boleh bertanya, apakah mungkin jika tabelnya diubah menjadi
> > > > memiliki
> > > > > kolom Nomor dan Jawaban (2 kolom) saja ?
> > > > >
> > > > > Wassalam,
> > > > > Kid.
> > > > >
> >
> >
> >
>

Wed Dec 26, 2012 1:08 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Coba di Excel cell hasil copyfrom recordset di atur format number -> custom
-> HH:mm:ss

Kid.

2012/12/26 Adi <abduhsuryadi@gmail.com>

> **
>
>
> Terima kasih banyak atas sarannya Mr. saya mengubah sSQL menjadi:
> "Select *, cDate(Waktu) From Jawaban".
> kalau saya rinci, maka panjang sekali jadinya, karena table jawaban
> mempunyai hampir 60 field (atau mgkn ada caranya?).
> field tanggal bertipe datetime dengan default value Date()
> sedangkan field waktu bertipe datetime dengan defaultvalue Now().
> tapi untuk efisiensi, field waktu saya hapus dan field tanggal saya ubah
> defaultnya ke now().
>
> untuk kode yang bapak buat, sudah saya coba, tapi field waktu ternyata
> tidak bisa menampilkan format waktu, yang terambil hanya tanggalnya saja.
>
> sekali lagi, terima kasih banyak atas sarannya pak.
> wassalam...
>
>
> --- In belajar-excel@yahoogroups.com, "Mr. Kid" <mr.nmkid@...> wrote:
> >
> > Hai Adi,
> >
> > > field waktu tidak dapat menampilkan format waktu di excel
> > >> Tipe data tabel di db untuk field waktu apa ya...
> > Biasanya hasil copyfromrecordset akan tampil di-Excel sesuai tipe
> datanya.
> > Apakah tipe data field waktu bukan datetime ?
> > Jika bukan datetime, bagaimana format penulisan waktu dalam field waktu
> > tersebut ? (umumnya ditulis dengan format HH:mm:ss)
> > Bagaimana jika field tanggal dan field waktu dijadikan satu menjadi field
> > waktu_ujian dengan tipe data datetime ?
> >
> > btw, lepas dari semua itu. *
>
> > Anggap saja tipe data field waktu dalam db bukanlah bertipe datetime tapi
> > dalam format waktu HH:mm:ss* dan nama-nama fieldnya adalah
>
> >
> ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\dst
> > serta tetap ingin menggunakan methods copyfromrecordset, coba querynya
> > diubah menjadi : (query untuk ms access)
> > SELECT ID,Tanggal,*CDate(*Waktu*) as
> > jam*,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...,dst
>
> >
> > FROM Jawaban
> >
> > Jika akan menggunakan loop dalam menulis ke setiap cell Excel, maka query
> > masih bisa dengan :
> > SELECT * FROM Jawaban
> > kemudian loop dari record pertama sampai record terakhir (EOF)
> > yang didalamnya menulis semua field per record yang diproses oleh loop.
> > Jika Excel tetap tidak langsung mengkonversi tipe data field waktu
> menjadi
> > bertipe datetime dalam cell, maka lakukan konversi tipe data pada nilai
> > waktu.
> > Kira-kira bunyinya seperti ini :
> >
> > Dim sSQL As String
> > Dim rs As ADODB.Recordset
> > Dim cn As ADODB.Connection
> > dim lRowOffset as long, lColOffset as long, lFields as long
> > dim rngAnchor as range
> >
> > 'misal hasil query ditulis di sheet bernama Answer dengan header terkiri
> di
> > A1
> > set rngAnchor=sheets("Answer").range("a1")
> >
> > Set cn = New ADODB.Connection
> >
> > cn.Open "Provider=Microsoft.ACE.OLEDB.
> > 12.0;Data Source=" &
> > Environ("UserProfile") & "\Desktop\jwb.accdb;Persist Security
> > Info=False"
> >
> > Set rs = New ADODB.Recordset
> >
> > sSQL = "Select * from Jawaban"
> >
> > rs.Open sSQL, cn, adOpenKeyset, adLockOptimistic
> >
> > if rs.recordcount>0 then
> > lrowoffset=1
> > rs.movefirst
> > lfields=rs.fields.count -1 'index field adalah base 0
> > do while not rs.eof
> > with rnganchor
> > for lcoloffset=0 to lfields
> > .offset(lrowoffset,lcoloffset).value =
> > rs.fields(lcoloffset).value
> > next lcoloffset
> > end with
> > lrowoffset=lrowoffset+1
> > rs.movenext
> > loop
> > endif
> >
> > rs.Close
> > Set rs = Nothing
> > cn.Close
> > Set cn = Nothing
> >
> > > ujian semester menggunakan Excel 2007. ketika menekan tombol selesai,
> > data jawaban akan tersimpan ke table jawaban.
> > siswanya berjumlah 700 orang. 1 materi saja mempunyai 50 soal. Fields :
> >
> ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\dst
> > >> Biasanya, untuk database yang ingin menampung data seperti demikian,
> > setidaknya akan dibagi menjadi 3 tabel, yaitu :
> > 1. Tabel siswa (NoIndukSiswa,Nama,Kelas,no_ujian)
> > 2. Tabel ujian (IDMateri,Materi,Kelas,TglUjian)
> > 3. Tabel jawaban (noUjian,IDMateri,NoIndukSiswa,TglKumpul,NoSoal,Jawaban)
> > Kunci jawaban disimpan dengan NoUjian 0.
> > Komputasi mengkalkulasi nilai jawaban bisa dilakukan dengan klausa JOIN
> > Komputasi menyusun data source untuk output (fact table) juga disusun
> > dengan klausa JOIN
> > Biasanya menampilkan jawaban para siswa beserta nilai masing-masing
> > dilakukan per materi dan jarang untuk seluruh materi sekaligus.
> >
> > asumsi ada 20 materi per kelas dan ada 100 kelas dengan ujian per materi
> > sebanyak 5 kali dalam 2 semester, akan ada 700M record.
> > Kadang data seperti tabel jawaban dibagi menjadi data per kelas per
> > semester (andai database engine tidak memiliki kemampuan membuat partisi
> > data).
> > Maka jumlah record sekitar 3.5M. Sepertinya MS Access masih mampu untuk
> > record sebanyak 3.5M
> > Excel dengan 1M baris per sheet, digunakan untuk menampilkan output per
> > materi. Andai saja juga ditampilkan per ujian, maka jumlah record sekitar
> > 35K.
> > Seluruh proses komputasi diusahakan dilakukan pada sisi database dan
> > sesedikit mungkin yang dikomputasi oleh Excel.
> >
> > Andai field dibuat berorientasi horisontal seperti yang ada sekarang,
> > komputasi yang dilakukan disisi database akan membutuhkan kalimat query
> > yang relatif panjang.
> >
> > Wassalam,
> > Kid.
> >
> >
> > 2012/12/25 Adi <abduhsuryadi@...>
> >
> > > **
>
> > >
> > >
> > > Sebenarnya database access ini bertujuan untuk menampung jawaban
> > > santriwati di pondok saya yang ujian semester menggunakan Excel 2007.
> > > Setiap santriwati ketika menekan tombol selesai, data jawaban mereka
> > > akan tersimpan ke table jawaban.
> > > kalau jawaban dibuat menjadi record tersendiri, dapat dibayangkan
> berapa
> > > record yang akan terbentuk jika siswanya berjumlah 700 orang. padahal 1
> > > materi saja mempunyai 50 soal.
> > >
> > > lebih lengkapnya desain field table jawaban seperti ini:
> > >
> ID,Tanggal,Waktu,NoUjian,Nama,Kelas,Materi,Jawaban1,jawaban2,jawaban3...\
> > > dst
> > >
> > > Izinkan saya untuk bertanya lagi Mr... sya menulis kode berikut untuk
> > > mengambil kembali data yang ada di access ke excel menggunakan
> > > copyfromrecordset. yang jadi masalah adalah, field waktu tidak dapat
> > > menampilkan format waktu di excel, hanya tanggal saja yang ada di field
> > > waktu.
> > > Minta pencerahannya...wassalam.
> > >
> > > Sub DapatkanData()
> > >
> > > Dim sSQL As String
> > > Dim rs As ADODB.Recordset
> > > Dim cn As ADODB.Connection
> > >
> > > Set cn = New ADODB.Connection
> > >
> > > cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &
> > > Environ("UserProfile") & "\Desktop\jwb.accdb;Persist Security
> > > Info=False"
> > >
> > > Set rs = New ADODB.Recordset
> > >
> > > sSQL = "Select * from Jawaban"
> > >
> > >
> > > rs.Open sSQL, cn, adOpenKeyset, adLockOptimistic
> > >
> > > Cells(5, 2).CopyFromRecordset rs
> > >
> > >
> > > rs.Close
> > > Set rs = Nothing
> > > cn.Close
> > > Set cn = Nothing
> > > End Sub
> > >
> > > --- In belajar-excel@yahoogroups.com, "Mr. Kid" wrote:
> > > >
> > > > Oh gitu.
> > > >
> > > > Maksud saya, kenapa tabel tidak dibuat berupa 2 kolom bernama Nomor
> > > > (kolom1) dan jawab(kolom2).
> > > > Jadi data setiap nomor akan jadi 1 record alias sekali input akan ada
> > > > penambahan 50 record.
> > > >
> > > > Wassalam,
> > > > Kid.
> > > > On Dec 25, 2012 9:18 AM, "Adi" abduhsuryadi@ wrote:
> > > >
> > > > > **
> > >
> > > > >
> > > > >
> > > > > kalau yang itu, sudah saya coba pak,dan alhmdlillah sukses. kodenya
> > > > > seperti ini:
> > > > >
> > > > > dim myField as String
> > > > > dim myInt as Integer
> > > > >
> > > > > With rs
> > > > > .AddNew
> > > > >
> > > > > For myInt = 1 To 50
> > > > > myField = myField & IIf(IsNull(Range("F" & myInt)) Or Range("F" &
> > > myInt) =
> > > > > "", "0", Range("F" & myInt))
> > > > > Next
> > > > >
> > > > > .Fields("Jawaban") = myField
> > > > > .Update
> > > > > End With
> > > > >
> > > > > --- In belajar-excel@yahoogroups.com, "Mr. Kid" mr.nmkid@ wrote:
> > > > > >
> > > > > > Sama-sama.
> > > > > >
> > > > > > Kalau boleh bertanya, apakah mungkin jika tabelnya diubah menjadi
> > > > > memiliki
> > > > > > kolom Nomor dan Jawaban (2 kolom) saja ?
> > > > > >
> > > > > > Wassalam,
> > > > > > Kid.
> > > > > >
> > >
> > >
> > >
> >
>
>
>

Tue Dec 25, 2012 4:40 pm (PST) . Posted by:

"Faisal Hasman" revolter_ichal

thanks Mr. Kid

________________________________
From: Mr. Kid <mr.nmkid@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Saturday, 22 December 2012, 19:51
Subject: Re: [belajar-excel] filter drop down list


 
Hai Faisal,

File terlampir memiliki kondisi sebagai berikut :
>> Area Kriteria :
1. header kriteria di baris 1 yang harus sama dengan nama header terpilih di tabel data.
2. area penulisan kriteria pada baris 2 sampai baris 8
3. area penulisan kriteria dimulai pada kolom B dan kolom A harus tetap kosong kecuali cell A1 yang berisi header No dari tabel data
4. area kriteria dilokalisir dengan adanya 8 baris kosong pada sebuah kolom setelah kolom terkanan area kriteria

>> Area input
1. Input berupa pilihan kolom kriteria yang akan digunakan
2. Input menggunakan fitur Data validation List dengan daftar item yang merujuk range J1:J6
3. Item-item dalam range J2:J5 harus sama dengan nama kolom terpilih dalam tabel data
4. Cell bantu posisi offset kolom terletak pada cell H2. Pelihara formula pada cell H2 dengan baik.
5. Pengubahan isi cell input akan memicu proses filter (memanfaatkan event change milik worksheet)
6. Jika tidak akan menggunakan kolom kriteria, maka pilihlah item [Semua Data]
7. Jika akan menggunakan seluruh kriteria, maka pilihlah item [Seluruh Kriteria].
8. Pelajari lebih lanjut karakteristik advanced filter agar dapat menyusun kriteria dengan baik ketika memilih opsi seluruh kriteria

>> Area data
1. Header data berupa 1 baris yang terletak di baris ke 10 dan memenuhi kaidah database tentang header data
2. Data dimulai pada baris ke-11 dan memenuhi kaidah database tentang record data

Prosedur event change milik worksheet diberi script berikut :
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngCriteria As Range    'var range kriteria sesuai pilihan user
    Dim lRows As Long           'jumlah baris kriteria beserta headernya
    Dim lOff As Long            'nilai offset kolom untuk mencapai kolom kriteria terpilih dari kolom A
   
    With Application            'pada aplikasi
        .ScreenUpdating = False                     'turn off update tampilan
        .EnableEvents = False                       'turn off event
        .DisplayAlerts = False                      'turn off kecerewetan excel minta konfirmasi
        .Calculation = xlCalculationAutomatic       'paksa agar kalkulasi automatic
    End With                    'selesai aplikasi
   
    With Target                             'pada cell yang berubah nilai
        If .Count = 1 Then                      'cek jumlah cell yang berubah nilai
            'yup... cuma 1 cell yang berubah
            If .Address = "$G$2" Then               'cek alamat cell yang berubah nilai
                'yup... alamatnya cocok
                lOff = .Offset(0, 1).Value              'simpan nilai offset kolom
                Select Case lOff                        'berdasar nilai offset kolom
                Case 0 To 4         'semua data atau sebuah kolom kriteria terpilih saja
                    'definisikan kolom kriteria (basis : range a1:a8)
                    Set rngCriteria = Range("a1:a8").Offset(0, lOff)
                   
                    'hitung jumlah baris isi kriteria (termasuk baris header)
                    lRows = Application.WorksheetFunction.CountA(rngCriteria)
                   
                    'set ulang area kriteria terpilih
                    Set rngCriteria = rngCriteria.Resize(lRows)
                Case Else           'seluruh kriteria akan digunakan
                    'set seluruh area kriteria
                    Set rngCriteria = Range("a1").CurrentRegion
                End Select
               
                'proses filter dengan advanced filter
                Range("a10").CurrentRegion.AdvancedFilter xlFilterInPlace, rngCriteria
            End If                                  'selesai blok cek alamat
        End If                                  'selesai blok cek jumlah cell yang berubah nilai
    End With                                'selesai kerja pada cell yang berubah

    With Application            'pada aplikasi
        .EnableEvents = True        'turn on event
        .ScreenUpdating = True      'turn on update tampilan
        .DisplayAlerts = True       'turn on kecerewetan excel minta konfirmasi
    End With                    'selesai aplikasi
End Sub
 
Selamat menikmati liburan.

Wassalam,
Kid.

2012/12/22 Faisal Hasman <revolter_ichal@yahoo.com>


>dear mailing excel
>
>
>sebelumnya hal hal ini pernah dibahas
>
>oleh pak hendrik... dengan file contoh FILTER BLOKKOTA
>namun setelah saya utak atik
>nda bisa jalan sesuai dengan file sample
>yangsaya attach
>mungkin karena macrox tidak mendukung
>karena saya mau memfilter
>dengan beberapa kriteria lagi
>yaitu, bentuk usaha, dusun, kelurahan/desa dan
>
>kecamatan
>
>
>mungkin bisa dibantu memecahkan masalah ini
>kalo bisa macro filter blokkotax dijelaskan juga
>
>
>trima kasih
>

Tue Dec 25, 2012 4:42 pm (PST) . Posted by:

"Faisal Hasman" revolter_ichal

Thanks Jan Raisin

________________________________
From: Jan Raisin <miss.jan.raisin@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Saturday, 22 December 2012, 17:29
Subject: Re: [belajar-excel] filter drop down list


 
Dear pak Ichal,

coba file terlampir,  file diambil dari postingan sebelumnya.

script berikut ditulis di dalam sheet Filter dengan event Change

==============================================================================================================================
Option Explicit

' event change pada sheet Filter
Private Sub Worksheet_Change(ByVal Target As Range)
    
    ' bekerja pada cell target yang berubah nilainya
    With Target
        
        ' jika cell yang berubah hanya 1 maka
        If .Cells.Count = 1 Then
            
            ' jika cell yang berubah terletak di baris 2 kolom 8 (cell H2) maka
            If .Row = 2 And .Column = 8 Then
                
                ' cell H3 dikosongkan dulu
                Range("h3").Value = ""
                
                ' bersihkan data mulai dari cell A5 sampai data paling kanan dan paling bawah
                Range(Range("a5"), Range("a5").End(xlToRight).End(xlDown)).ClearContents
                
                ' jika nilai dari cell yang berubah (dalam hal ini cell H2) adlah ALL, maka
                If .Value = "ALL" Then
                    
                    ' panggil prosedur Filter, prosedur ini ditulis di sebuah modul VBE
                    Filter
                
                ' akhir pengecekan perubahan nilai pada cell H2
                End If
            
            ' akhir pengecekan apakah yang berubah adalah cell H2 atau bukan
            End If
            
            ' jika cell yang berubah terletak di baris 3 kolom 8 (cell H3) maka
            If .Row = 3 And .Column = 8 Then
                
                ' panggil prosedur Filter
                Filter
            
            ' akhir pengecekan apakah yang berubah adalah cell H3 atau bukan
            End If
        
        ' akhir pengecekan apakah yang berubah hanya 1 cell atau tidak
        End If
    
    ' akhir bekerja dengan cell target yang mengalami perubahan
    End With

' akhir dari prosedur
End Sub

============================================================================================================================================================================================================================================================

script berikut ditulis dalam sebuah modul VBE yang proses kerjanya dipicu oleh perubahan yang terjadi pada sheet Filter cell H2 dan H3

Option Explicit

' --------------------------------- '
'  Filter Data Berdasarkan Kriteria '
'  Code by: Ms. Jan Raisin          '
'  untuk millis Belajar Excel       '
'  22 Desember 2012                 '
' --------------------------------- '

' dalam pembelajaran ini, tanda // berarti : gunakan perintah berikut...

' deklarasikan public variabel, karena akan digunakan dalam banyak prosedur
' Krit1 = kriteria 1, letaknya di sheet Filter cell H2
' Krit2 = kriteria 2, letaknya di sheet Filter cell H2
' Rng = Range data, letaknya di sheet Data Usaha, dimensinya berubah-ubah tergantung jenis filter
' idxRow = nomor baris, digunakan pada sheet Filter & sheet Data Usaha dengan nilai yang berubah-ubah
Dim Krit1 As String, Krit2 As String
Dim Rng As Range, rg As Range
Dim idxRow As Long

' ini adalah nama prosedur utama, bekerja berdasarkan perubahan nilai pada cell H2 & H3 pada sheet Filter
Sub Filter()

    ' non aktifkan dahulu screen update & enable event untuk mempercepat kerja VBA
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    ' panggil prosedur yang bernama AreaFilter
    AreaFilter
    
    ' panggil prosedur yang bernama NomorUrut
    NomorUrut
    
    ' pergi ke cell A4, ini adalah header filter, hanya agar terlihat cantik saja
    Range("a4").Select
    
    ' aktifkan kembali screen update & enable event
    Application.EnableEvents = True
    Application.ScreenUpdating = True

' ini adalah akhir dari prosedur Filter
End Sub

----------------------------------------------------------

' prosedur ini dipanggil melalui prosedur Filter
Sub AreaFilter()

    ' pergi ke sheet Filter
    Sheets("filter").Select
    
    ' simpan nilai kriteria ke variabel yang telah dideklarasikan terlebih dahulu
    Krit1 = Range("h2").Value
    Krit2 = Range("h3").Value
    
    ' pergi ke sheet Data Usaha
    Sheets("data usaha").Select
    
    ' pergi ke cell B4, ini adalah header dari Nomer Register
    ' saat ini cell aktif ada di B4
    Range("b4").Select
    
    ' lakukan pemeriksaan, apakah di bawah header ada datanya atau tidak
    ' bahasa manusia :: jika 1 baris di bawah cell aktif            // ActiveCell.Offset(1, 0)
    ' tidak ada datanya maka                                        // = ""
    If ActiveCell.Offset(1, 0) = "" Then
    
        ' tampilkan pesan kepada user bahwa tidak ada data untuk difilter
        MsgBox "Tidak ada data", vbOKOnly, "Pesan"
        
        ' karena tidak ada yang bisa difilter maka keluar dari prosedur
        Exit Sub
    
    ' ini adalah akhir dari pemeriksaan ada atau tidak data di bawah header Nomer Register
    End If
    
    ' lakukan pengecekan terhadap kriteria 1 untuk menentukan range data yang akan difilter,
    ' dan pemilihan prosedur filter berdasarkan nilai kriteria 1 dan kriteria 2
    ' jika kriteria 1 = All maka
    If Krit1 = "ALL" Then
        
        ' range datanya adalah mulai dari cell B5           // Range("b5")
        ' sampai data yang paling kanan                     // Range("b5").End(xlToRight)
        ' lalu turun sampai data yang paling bawah          // .End(xlDown)
        ' setara dengan meng-klik cell B5, lalu menekan tombol CTRL Shift panah_kanan lalu panah_bawah
        Set Rng = Range(Range("b5"), Range("b5").End(xlToRight).End(xlDown))
        
        ' setelah itu panggil prosedur yang bernama FilterAll
        FilterAll
        
    ' selain itu, jika kriteria 1 = Pemilik dan kriterian 2 tidak kosong maka
    ElseIf Krit1 = "PEMILIK" And Krit2 <> "" Then
        
        ' range filternya adalah mulai dari cell C5 ke arah bawah
        ' setara dengan meng-klik cell C5                   // Range("c5")
        ' lalu menekan tombol CTRL Shift panah_bawah        // Range("c5").End(xlDown)
        Set Rng = Range(Range("c5"), Range("c5").End(xlDown))
        
        ' setelah itu panggil prosedur yang bernama FilterPemilik
        FilterPemilik
    
    ' selain itu jika kriteria 1 = Kecamatan dan kriteria 2 tidak kosong maka
    ElseIf Krit1 = "KECAMATAN" And Krit2 <> "" Then
    
        ' range filternya adalah mulai cell F5                  // Range("f5")
        ' lalu dari cell F5 sampai data paling bawah bawah      // Range("f5").End(xlDown)
        ' setara dengan meng-klik cell F5, lalu menekan tombol CTRL Shift panah_bawah
        Set Rng = Range(Range("f5"), Range("f5").End(xlDown))
        
        ' setelah itu panggil prosedur yang bernama FilterKecamatan
        FilterKecamatan
    
    ' selain itu jika kriteria 1 = Kelurahan dan kriteria 2 tidak kosong maka
    ElseIf Krit1 = "KELURAHAN" And Krit2 <> "" Then
    
        ' range filternya adalah mulai dari cell G5             // Range("g5")
        ' lalu dari cell G5 sampai data paling bawah            // Range("g5").End(xlDown)
        ' setara dengan meng-klik cell G5, lalu menekan tombol CTRL Shift panah_bawah
        Set Rng = Range(Range("g5"), Range("g5").End(xlDown))
        
        ' setelah itu panggil prosedur yang bernama Filter Kelurahan
        FilterKelurahan
    
    ' ini adalah akhir dari pemeriksaan nilai kriteria 1, kriteria 2, penentuan lokasi range filter,
    ' dan pemilihan prosedur filternya
    End If
    
' ini adalah akhir dari prosedur AreaFilter
End Sub

----------------------------------------------------------

' ini adalah prosedur yang dijalankan jika kriteria filter adalah All (tampil semua)
Sub FilterAll()
    
    ' copy range filter yang telah ditentukan sebelumnya
    ' setara dengan menekan tombol CTRL C
    Rng.Copy
    
    ' pergi ke sheet Filter
    Sheets("filter").Select
    
    ' pergi ke cell B5, ini adalah baris pertama dari data
    Range("b5").Select
    
    ' pada aktiif cell lakukan paste berdasarkan nilainya saja
    ' setara dengan menekan tombol kanan mouse >> Paste Special >> Value >> OK
    ActiveCell.PasteSpecial xlPasteValues
    
    ' matikan aplikasi copy paste, setara dengan menekan tombol Esc pada keyboard
    Application.CutCopyMode = False
    
' akhir dari prosedur FilterAll
End Sub

----------------------------------------------------------

' ini adalah prosedur yang dijalankan jika kriteria 1 = Kecamatan
' dan kriteria 2 tidak kosong
Sub FilterKecamatan()
    
    ' panggil dahulu prosedur ClearData, berfungsi untuk menghapus data sebelumnya
    ClearData
    
    ' pergi ke sheet Data Usaha
    Sheets("data usaha").Select
    
    ' untuk setiap 1 cell di dalam range filter
    For Each rg In Rng
    
        ' jika nilai cell = nilai kriteria 2 maka
        If rg.Value = Krit2 Then
            
            ' ambil nomor barisnya dan simpan ke variabel IdxRow
            idxRow = rg.Row
            
            ' copy baris tersebut mulai kolom 2 (kolom B) sampai kolom 7 (kolom G)
            Range(Cells(idxRow, 2), Cells(idxRow, 7)).Copy
            
            ' pindah ke sheet Filter
            Sheets("filter").Select
            
            ' pergi ke cell B4, ini adalah header dari Nomor Register
            ' saat ini cell aktif ada di cell B4
            Range("b4").Select
            
            ' lakukan pemeriksaan apakah di bawah header ada data atau tidak
            ' tujuannya untuk menentukan lokasi penulisan data
            ' bahasa manusia :: jika 1 baris di bawah cell aktif kosong maka
            If ActiveCell.Offset(1, 0).Value = "" Then
                
                ' dari cell aktif turun 1 baris ke bawah
                ' setara dengan menekan tombol panah_bawah 1 x
                ActiveCell.Offset(1, 0).Select
                
                ' selain itu, berarti di bawah header sudah ada datanya
                Else
                
                ' dari aktif cell turun ke baris paling bawah yang ada datanya          // ActiveCell.End(xlDown)
                ' lalu turun lagi 1 baris ke bawah                                      // .Offset(1, 0)
                ' setara dengan menekan tombol CTRL panah_bawah, lalu menekan panah_bawah 1 x
                ActiveCell.End(xlDown).Offset(1, 0).Select
            
            ' akhir dari pemeriksaan lokasi penulisan data
            End If
            
            ' pada cell aktif lakukan paste value
            ActiveCell.PasteSpecial xlPasteValues
            
            ' matikan fitur copas
            Application.CutCopyMode = False
            
            ' pergi ke sheet Data Usaha
            Sheets("data usaha").Select
        
        ' ini adalah akhir pemeriksaan nilai cell dalam range filter terhadap nilai kriteria 2
        End If
    
    ' lakukan lagi untuk cell berikutnya
    Next rg

' akhir dari prosedur FilterKecamatan
End Sub

----------------------------------------------------------

' ini adalah prosedur filter berdasarkan kriteria Kelurahan
' logikanya sama dengan prosedur filter Kecamatan
' silakan baca kembali prosedur FilterKecamatan untuk mengetahui alurnya
Sub FilterKelurahan()
    ClearData
    Sheets("data usaha").Select
    For Each rg In Rng
        If rg.Value = Krit2 Then
            idxRow = rg.Row
            Range(Cells(idxRow, 2), Cells(idxRow, 7)).Copy
            Sheets("filter").Select
            Range("b4").Select
            If ActiveCell.Offset(1, 0).Value = "" Then
                ActiveCell.Offset(1, 0).Select
                Else
                ActiveCell.End(xlDown).Offset(1, 0).Select
            End If
            ActiveCell.PasteSpecial xlPasteValues
            Application.CutCopyMode = False
            Sheets("data usaha").Select
        End If
    Next rg
End Sub

----------------------------------------------------------

' ini adalah prosedur filter berdasarkan kriteria Pemilik
' logikanya sama dengan prosedur filter Kecamatan
' silakan baca kembali prosedur FilterKecamatan untuk mengetahui alurnya
Sub FilterPemilik()
    ClearData
    Sheets("data usaha").Select
    For Each rg In Rng
        If rg.Value = Krit2 Then
            idxRow = rg.Row
            Range(Cells(idxRow, 2), Cells(idxRow, 7)).Copy
            Sheets("filter").Select
            Range("b4").Select
            If ActiveCell.Offset(1, 0).Value = "" Then
                ActiveCell.Offset(1, 0).Select
                Else
                ActiveCell.End(xlDown).Offset(1, 0).Select
            End If
            ActiveCell.PasteSpecial xlPasteValues
            Application.CutCopyMode = False
            Sheets("data usaha").Select
        End If
    Next rg
End Sub

----------------------------------------------------------

' ini adalah prosedur untuk membuat nomor urut
Sub NomorUrut()

    ' pergi ke sheet Filter
    Sheets("filter").Select
    
    ' cari nilai baris dari data yang paling akhir      // .End(xlDown).Row
    ' dan simpan ke dalam variabel idxRow
    idxRow = Range("b4").End(xlDown).Row
    
    ' Perhatian: header ada di baris 4 dan data pertama ada di baris 5
    ' pilih perdasarkan nilai baris data terakhir
    Select Case idxRow
        
        ' jika nilai baris data terakhir = 5, berarti hanya ada 1 data, maka
        Case 5
            ' beri nilai 1 pada cell A5
            Range("a5").Value = 1
        
        ' jika nilai baris data terakhir = 6, berarti hanya ada 2 data, maka
        Case 6
            ' beri nilai 1 di cell A5, dan nilai 2 di cell A6
            Range("a5").Value = 1
            Range("a6").Value = 2
        
        ' jika nilai baris data terakhir > 6, berarti ada 3 atau lebih data, maka
        Case Is > 6        
            ' beri nilai 1 di cell A5, dan nilai 2 di cell A6
            Range("a5").Value = 1
            Range("a6").Value = 2
            
            ' blok cell A5 & A6
            Range("a5:a6").Select
            
            ' buat nomor urut otomatis                  // .AutoFill
            ' mulai dari cell A5 (baris 5 , kolom 1)    // Cells(5, 1)
            ' sampai baris data terakhir                // Cells(idxRow, 1)
            Selection.AutoFill Destination:=Range(Cells(5, 1), Cells(idxRow, 1))
    
    ' akhir dari pemilihan nilai baris data
    End Select

' akhir dari prosedur pembuatan nomor otomatis
End Sub

----------------------------------------------------------

' ini adalah prosedur bersih-berih data
Sub ClearData()

    ' pergi ke sheet Filter
    Sheets("filter").Select
    
    ' mulai dari cell A5 ke arah kanan lalu     // Range("a5").End(xlToRight)
    ' ke bawah yang ada datanya                 // .End(xlDown)
    ' lalu hapus isi datanya                    // .ClearContents
    Range(Range("a5"), Range("a5").End(xlToRight).End(xlDown)).ClearContents

' akhir dari bersih-bersih data
End Sub

Semoga bermanfaat.

Best Regard,

-Ms. Jan Raisin-

Pada 22 Desember 2012 08:35, Faisal Hasman <revolter_ichal@yahoo.com> menulis:


>dear mailing excel
>
>
>sebelumnya hal hal ini pernah dibahas
>
>oleh pak hendrik... dengan file contoh FILTER BLOKKOTA
>namun setelah saya utak atik
>nda bisa jalan sesuai dengan file sample
>yangsaya attach
>mungkin karena macrox tidak mendukung
>karena saya mau memfilter
>dengan beberapa kriteria lagi
>yaitu, bentuk usaha, dusun, kelurahan/desa dan
>
>kecamatan
>
>
>mungkin bisa dibantu memecahkan masalah ini
>kalo bisa macro filter blokkotax dijelaskan juga
>
>
>trima kasih
>

Tue Dec 25, 2012 7:47 pm (PST) . Posted by:

"Jan Raisin"

Dear pak Arkan,

mungkin jika disertakan sampel datanya maka akan ada BeExceller yang
bersedia berbagi solusi dengan anda. karena file yang dilampirkan hanya
berisi template laporan tanpa data sama sekali.

Best Regard,

-Ms, Jan Raisin-

Pada 24 Desember 2012 16:05, Abang Jakarta <abang_jakarta17@yahoo.com>menulis:

> **
>
>
> Master XL,
>
> Minta tolong bantuannya, saya memiliki data HT dan setiap saat operator HT
> akan melakukan panggilan keluar dan menerima panggilan masuk. Adappun data
> yang ingin saya sajikan adalah :
> 1. Summary HT per 3 jam , tabel seperti di sheet "SUMMARY"
> 2. Tampilan grafik untuk 20 list HT yang terbanyak melakukan panggilan
> Call in dan Call out
> 3. Tampilan grafik untuk 20 list HT yang paling sedikit melakukan
> panggilan Call in dan Call Out
> 4. pada sheet Call in dan Call out, kolom Time hanya bisa di isi kalau HT
> ID sudah di isi, kolom Guard in Charge bisa di isi kalau kolom Time sudah
> di isi, Kolom Remarks bisa di isi kalau kolom Guard in charge sudah di isi
> 3. Non aktif fungsi copy paste" klik Kanan atau ctrl c dan ctrl v "
>
> Terimakasih
> arkan
>
>
>

Wed Dec 26, 2012 1:09 am (PST) . Posted by:

"Abang Jakarta" budi170177

Dear Bp. Raisin dan Master Excel,
Apakah data dan penjelasan di file yang sekarang bisa membantu?
TerimakasihArkan

--- On Tue, 12/25/12, Jan Raisin <miss.jan.raisin@gmail.com> wrote:

From: Jan Raisin <miss.jan.raisin@gmail.com>
Subject: Re: [belajar-excel] HT List
To: belajar-excel@yahoogroups.com
Date: Tuesday, December 25, 2012, 7:47 PM

 

Dear pak Arkan,
mungkin jika disertakan sampel datanya maka akan ada BeExceller yang bersedia berbagi solusi dengan anda. karena file yang dilampirkan hanya berisi template laporan tanpa data sama sekali.

Best Regard,
-Ms, Jan Raisin- 

Pada 24 Desember 2012 16:05, Abang Jakarta <abang_jakarta17@yahoo.com> menulis:

 

Master XL,
Minta tolong bantuannya, saya memiliki data HT dan setiap saat operator HT akan melakukan panggilan keluar dan menerima panggilan masuk. Adappun data yang ingin saya sajikan adalah :
1. Summary HT per 3 jam , tabel seperti di sheet "SUMMARY" 2. Tampilan grafik untuk 20 list HT yang terbanyak melakukan panggilan Call in dan Call out3. Tampilan grafik untuk 20 list HT yang paling sedikit melakukan panggilan Call in dan Call Out
4. pada sheet Call in dan Call out, kolom Time hanya bisa di isi kalau HT ID sudah di isi, kolom Guard in Charge bisa di isi kalau kolom Time sudah di isi, Kolom Remarks bisa di isi kalau kolom Guard in charge sudah di isi
3. Non aktif fungsi copy paste" klik Kanan atau ctrl c dan ctrl v

Terimakasiharkan

Tue Dec 25, 2012 7:52 pm (PST) . Posted by:

"raya hidayat" raya.hidayat

dear pak surya,

saya tidak tahu apakah ini sesuai dengan yang bapak inginkan dikarenakan
hasil yang diinginkan tidak ditampilkan.
ini hasil tebak-tebak berhadiahnya, semoga sesuai.
note : saya baru pemula di excell 2007.

terima kasih

Raya

2012/12/25 surya sampurna <suryasampurna5@gmail.com>

> **
>
>
> Dear para Pakar Excel 2007
>
> Saya minta tolong dong bantuin saya, untuk menghitung jumlah huruf
> dalam beberapa
> kolom. Mungkin para Pakar Excel bisa berbagi ilmunya.Data terlampir.
> Terimakasihatas kemuliaan Anda dalam berbagi.
>
> Wasalam,
> Surya
>
>

--
Terima kasih

Raya

Wed Dec 26, 2012 1:00 am (PST) . Posted by:

"agung.widodo01@id.panasonic.com" aghoenx1

Ok, Sesuai keinginan..

Terimakasih banyak Mr. Kid dan pak Ghozi yang senantiasa memikirkan dan membantu kesulitan orang lain

Semoga anda sekalian selalu dijauhkan dari kesulitan hidup, Amin

AgungWi

________________________________
From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com] On Behalf Of Mr. Kid
Sent: Friday, December 21, 2012 8:51 PM
To: belajar-excel@yahoogroups.com
Subject: Re: [belajar-excel] Mengubah angka hasil dari database menjadi huruf

Coba :
=INDEX($F$16:$F$20,VLOOKUP($B6,Data!$B$2:$H$19,COLUMN(C$5),0)+1)
Bahasa manusia :
"Ambil dari $F$16:$F$20 [INDEX($F$16:$F$20] pada posisi baris hasil lookup vertikal [VLookUp] nilai B6 di tabel B2:H19 di sheet data di kolom nilai kolom C5 dengan mode pencarian sama persis"

Wassalam,
Kid.
2012/12/21 <agung.widodo01@id.panasonic.com<mailto:agung.widodo01@id.panasonic.com>>

Rekan pembelajar Excel sekalian,

Ada soal sederhana,
Bagaimana formula untuk mencari data di database dihalaman lain dan mengganti data Angka yang dihasilkan dengan Huruf tertentu

Contoh kasus saya ada dalam lampiran

Terimakasih
Agung W

Wed Dec 26, 2012 1:09 am (PST) . Posted by:

"Andre Rahmaidy Teeza" andre_teeza_bn

MasterExcell

Makasih sebelumnya Mr. Kid atas ilmu vbanya, setelah saya pelajari ada beberapa field yang datanya tidak sesuai dengan posnya masing-masing ada 2 field yang tidak cocok datanya, field tersebut saya beri warna kuning(file terlampir). kira2 gimana ya Mr.kid apa ada yang salah dengan proses codingnya. mohon petunjuknya ya Mr.Kid

Wasalam
ANdree 

________________________________
From: Mr. Kid <mr.nmkid@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Sunday, December 23, 2012 7:15 PM
Subject: Re: [belajar-excel] Form Data


 
Mohon tidak cc ke akun lain lagi.

Hai Andree,

Coba file terlampir.

Wasssalam,
Kid.

2012/12/23 Andre Rahmaidy Teeza <andre_teeza_bn@yahoo.com>


>Sore BeExceller
>
>
>mohon petunjuknya master excel semuanya saya ada problem di coding vba untuk pengisisan data di sheet FORM_isi contohnya:
>bahasa coding untuk menambah field setelah field PY karena ada sekitar 28 field lagi yang akan diisi sesuai dengan format pengisian pada sheet FORM_isi. untuk data yang akan di isi ada di sheet Data_2.(file terlampir)
>Mohon bantuannya para master excel..
>
>
>Regards
>
>
>Andree  
>

Wed Dec 26, 2012 1:09 am (PST) . Posted by:

"Andre Rahmaidy Teeza" andre_teeza_bn

maaf Mr. Kid kelupaan kirim filenya.

Wasalam
Andree

________________________________
From: Mr. Kid <mr.nmkid@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Sunday, December 23, 2012 7:15 PM
Subject: Re: [belajar-excel] Form Data


 
Mohon tidak cc ke akun lain lagi.

Hai Andree,

Coba file terlampir.

Wasssalam,
Kid.

2012/12/23 Andre Rahmaidy Teeza <andre_teeza_bn@yahoo.com>


>Sore BeExceller
>
>
>mohon petunjuknya master excel semuanya saya ada problem di coding vba untuk pengisisan data di sheet FORM_isi contohnya:
>bahasa coding untuk menambah field setelah field PY karena ada sekitar 28 field lagi yang akan diisi sesuai dengan format pengisian pada sheet FORM_isi. untuk data yang akan di isi ada di sheet Data_2.(file terlampir)
>Mohon bantuannya para master excel..
>
>
>Regards
>
>
>Andree  
>

Wed Dec 26, 2012 1:36 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Sepertinya baik-baik saja.
Coba lihat data cabang LA untuk sandi 175 di sheet data (manfaatkan fitur
autofilter)

Wassalam,
Kid.

2012/12/26 Andre Rahmaidy Teeza <andre_teeza_bn@yahoo.com>

> **
>
>
> MasterExcell
>
> Makasih sebelumnya Mr. Kid atas ilmu vbanya, setelah saya pelajari ada
> beberapa field yang datanya tidak sesuai dengan posnya masing-masing ada 2
> field yang tidak cocok datanya, field tersebut saya beri warna kuning(file
> terlampir). kira2 gimana ya Mr.kid apa ada yang salah dengan proses
> codingnya. mohon petunjuknya ya Mr.Kid
>
>
> Wasalam
> ANdree
>
> ------------------------------
> *From:* Mr. Kid <mr.nmkid@gmail.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Sunday, December 23, 2012 7:15 PM
> *Subject:* Re: [belajar-excel] Form Data
>
>
> Mohon tidak cc ke akun lain lagi.
>
> Hai Andree,
>
> Coba file terlampir.
>
> Wasssalam,
> Kid.
>
>
> 2012/12/23 Andre Rahmaidy Teeza <andre_teeza_bn@yahoo.com>
>
> **
>
> Sore BeExceller
>
> mohon petunjuknya master excel semuanya saya ada problem di coding vba
> untuk pengisisan data di sheet FORM_isi contohnya:
> bahasa coding untuk menambah field setelah field PY karena ada sekitar 28
> field lagi yang akan diisi sesuai dengan format pengisian pada sheet
> FORM_isi. untuk data yang akan di isi ada di sheet Data_2.(file terlampir)
> Mohon bantuannya para master excel..
>
> Regards
>
> Andree
>
>
>
>
>
>

Wed Dec 26, 2012 1:59 am (PST) . Posted by:

"Andre Rahmaidy Teeza" andre_teeza_bn

makasih penjelasannya Mr.Kid

terlampir file jpg dari sheet data yang saya lihat  udah sesuai cuma pas proses isi data di sheet form ternyata data cabang LA untuk sandi 175 terisi 312.371.546.470,-
mohon petunjuknya Mr.

________________________________
From: Mr. Kid <mr.nmkid@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Wednesday, December 26, 2012 4:35 PM
Subject: Re: [belajar-excel] Form Data


 
Sepertinya baik-baik saja.
Coba lihat data cabang LA untuk sandi 175 di sheet data (manfaatkan fitur autofilter)

Wassalam,
Kid.

2012/12/26 Andre Rahmaidy Teeza <andre_teeza_bn@yahoo.com>


>MasterExcell
>
>
>Makasih sebelumnya Mr. Kid atas ilmu vbanya, setelah saya pelajari ada beberapa field yang datanya tidak sesuai dengan posnya masing-masing ada 2 field yang tidak cocok datanya, field tersebut saya beri warna kuning(file terlampir). kira2 gimana ya Mr.kid apa ada yang salah dengan proses codingnya. mohon petunjuknya ya Mr.Kid
>
>
>
>
>Wasalam
>ANdree 
>
>
>
>________________________________
> From: Mr. Kid <mr.nmkid@gmail.com>
>To: belajar-excel@yahoogroups.com
>Sent: Sunday, December 23, 2012 7:15 PM
>Subject: Re: [belajar-excel] Form Data
>
>

>Mohon tidak cc ke akun lain lagi.
>
>Hai Andree,
>
>Coba file terlampir.
>
>Wasssalam,
>Kid.
>
>
>
>2012/12/23 Andre Rahmaidy Teeza <andre_teeza_bn@yahoo.com>
>
>
>> 
>>Sore BeExceller
>>
>>
>>mohon petunjuknya master excel semuanya saya ada problem di coding vba untuk pengisisan data di sheet FORM_isi contohnya:
>>bahasa coding untuk menambah field setelah field PY karena ada sekitar 28 field lagi yang akan diisi sesuai dengan format pengisian pada sheet FORM_isi. untuk data yang akan di isi ada di sheet Data_2.(file terlampir)
>>Mohon bantuannya para master excel..
>>
>>
>>Regards
>>
>>
>>Andree  
>>
>
>
>

Wed Dec 26, 2012 1:09 am (PST) . Posted by:

"Adi" abduh_suryadi

Assalamu'alaikum
Saya ingin menggunakan fungsi sum/average dll untuk menghitung cell A1,
C1, E1.
Formula menjadi: Sum(A1,C1,E1).
Masalahnya, ketika saya mendelete kolom C, maka C1 berubah menjadi
#REF!.
bagaimana caranya agar C1 otomatis hilang dari formula ketika kolom C
didelet?
thanks, wassalam.

Wed Dec 26, 2012 1:54 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

Wa'alaikumussalam Wr. Wb.

1. Jika area yang di-Sum adalah kontinyu, gunakan =Sum(A1:E1)
2. Jika area yang di-Sum tidak kontinyu, buat header di baris 1 dan untuk
kolom yang di-Sum punya isi yang sama, misal kolom A,C,E memiliki header
myData
Gunakan SumIF dalam susunan formula : (misal untuk data di baris 2 ->
karena baris 1 adalah header)
=SumIF(a$1:e$1,"myData",a2:e2)

Wassalamu'alaikum Wr. Wb.
Kid.

2012/12/26 Adi <abduhsuryadi@gmail.com>

> **
>
>
> Assalamu'alaikum
> Saya ingin menggunakan fungsi sum/average dll untuk menghitung cell A1,
> C1, E1.
> Formula menjadi: Sum(A1,C1,E1).
> Masalahnya, ketika saya mendelete kolom C, maka C1 berubah menjadi
> #REF!.
> bagaimana caranya agar C1 otomatis hilang dari formula ketika kolom C
> didelet?
> thanks, wassalam.
>
>
>
GROUP FOOTER MESSAGE
---------------------------------------------------------------------
bergabung ke milis (subscribe), kirim mail kosong ke:
belajar-excel-subscribe@yahoogroups.com

posting ke milis, kirimkan ke:
belajar-excel@yahoogroups.com

berkunjung ke web milis
http://tech.groups.yahoo.com/group/belajar-excel/messages

melihat file archive / mendownload lampiran
http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di :
http://milis-belajar-excel.1048464.n5.nabble.com/

menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com

keluar dari membership milis (UnSubscribe):
kirim mail kosong ke  belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------

Tidak ada komentar:

Posting Komentar