Hai Anas, Bagaimana jika Anda mencoba membuat sebuah sheet data (tidak terpisah-pisah). Isi kolomnya kira-kira : (anggap saja namanya DataDasar) 1. nama sheet output 2. nip (biasanya nip duluan diikuti nama) 3. nama 4. golongan 5. tanggal golongan 6. jabatan 7. tanggal menjabat 8. masa kerja tahun (tapi biarkan kosong karena harus dikalkulasi saat akan membentuk output berdasar tahun laporan) 9. masa kerja bulan (tapi biarkan kosong karena harus dikalkulasi saat akan membentuk output berdasar tahun laporan) 10. pelatihan jabatan 11. tanggal pelatihan 12. jumlah jam pelatihan 13. pendidikan terakhir 14. tahun lulus 15. tingkat ijasah 16. tanggal lahir 17. catatan mutasi 18. keterangan 19. tanggal mulai kerja (nanti dihitung dengan formula berdasar data NIP ~ kalau gak salah duga)
Kemudian buat juga daftar-daftar berikut : (boleh dalam 1 sheet tapi terpisah kolom kosong antar daftarnya dan misal namanya Referensi) D1. nama-nama sheet output -> untuk mengisi kolom nomor 1 D2. golongan -> untuk mengisi kolom nomor 4 D3. jabatan -> untuk mengisi kolom nomor 6 D4. tingkat ijazah -> untuk mengisi kolom nomor 15 Sertakan contoh data yang disikan ke tabel di sheet DataDasar dengan setiap item untuk kolom nomor 1,4,6,15 pasti ada dalam daftar D1,D2,D3,D4 Lalu, posting deh filenya kemilis. Jangan lupa, jika lebih dari 250KB, coba di zip. Karena katanya masih newbie, nanti BeExceller menemani Anda belajar bersama mulai dari membuat input sampai output. Untuk susunan data dasar (raw data) sudah seperti di atas. Tahap pertama adalah mempelajari menyusun input. Bisa jadi ada : 1. pemanfaatan fitur Data Validation List baik dinamis maupun statis) >> kalau ndak salah, sepertinya jabatan akan dinamis berdasar nama sheet outputnya, sedangkan golongan atau tingkat ijazah akan statis. 2. pembuatan nama-nama range >> mungkin ndak perlu nama range rujukan dinamis, tetapi kalau mau sekalian belajar hal ini juga banyak BeExceller yang bisa membantu 3. penggunaan formula seperti lookup untuk mengambil data lama atau formula untuk mengambil tanggal masuk dan sebagainya. 4. VBA untuk menyalin data dari input ke sheet DataDasar mumpung jenis datanya masih yang bersifat unique, yaitu berdasar NIP. Kalau sudah lancar, baru nanti masuk tahapan belajar menyusun output dengan VBA. Mulai dari menyusun output dalam template output, melakukan loop supaya output di sheet template output berubah sesuai kegiatan rutin penyusunan laporan, sampai pada penyalinan hasil di template output ke sheet output lain sesuai selera. hehehe.. itu kalau mau mencoba mempelajarinya. Kalau mau jadinya, mungkin tinggal ditunggu saja reply BeExceller dengan VBA yang input-nya di sebuah sheet dan simpan ke sheet masing-masing. Hasilnya biasanya bagus, sayangnya, datanya tetap tersebar dibanyak sheet dan akan relatif sulit diolah kedepannya. Kalau mau dibayangkan, pada data dibanyak sheet tersebut, bagaimana cara untuk menyusun laporan berikut : > daftar guru baru di tahun ini atau > daftar pegawai yang pensiun, dsb. Atau > akan search si NIP sekian sekarang tugas dimana, dan tetap unique gak, jangan-jangan tercatat 2 kali.atau > ada berapa pegawai yang akan masuk masa pensiun dalam 3 tahun kedepan dan siapa sajakah (jawaban dari pertanyaan 'bagaimana cara untuk menyusun laporan berikut' di atas sana itu sebenarnya simple, 'posting aja ke milis dan duduk manis deh') Untuk membuat aplikasi sederhana seperti di atas, akan mudah dilakukan dengan MS Access (kalau menguasai betul MS Access) dan akan mudah dilakukan dengan MS Excel (kalau menguasai MS Excel). Sebenarnya, mudah dengan apa pun yang ada atau dimiliki saat ini (kalau menguasai apa yang dimilikinya saat ini). so... setelah kesulitan itu ada minimal 2 kemudahan... :) ayo... belajar... mohon maaf kalau ada salah-salah kata sampai kurang berkenan dihati. (walah Kid ini, gak ikut urun solusi kok banyak omong...) Wassalam, Kid. 2012/12/15 Dian Anas <[email protected]> > ** > > > terima kasih atas pencerahannya, kalau dibuat input di sheet lain dan edit > data yang sudah ada gmn yah? maklum masih newbie. terima kasih semoga tidak > mengganggu waktu anda para exceller > > > --- On *Fri, 12/14/12, Jan Raisin <[email protected]>* wrote: > > > From: Jan Raisin <[email protected]> > Subject: Re: [belajar-excel] membuat duk pns otomatis > To: [email protected] > Date: Friday, December 14, 2012, 4:19 AM > > > > Dear mbak/mas Dian, > > untuk kasus ini jika ingin otomatis, maka satu-satunya cara adalah > menggunakan VBA > script berikut ditulis dalam sebuah modul VBE, untuk menampilkannya tekan > tombol ALT F11 >> Insert >> Module > > Option Explicit > > ' -------------------------------------- ' > ' prosedur input data dan sort otomatis ' > ' sort Descending berdasarkan : ' > ' Golongan, Tahun & Bulan masa kerja ' > ' code by: Ms Jan Raisin ' > ' untuk millis Belajar Excel ' > ' 14 Desember 2012 ' > ' -------------------------------------- ' > > ' ini adalah nama prosedurnya > Sub InputAndSort() > > ' deklarasikan variabel bertipe String untuk mencari NIP pada data > Dim sCari As String > > ' deklarasikan variabel bertipe Range untuk menyimpan data berupa > objek range > ' variabel ini untuk menunjukkan apakah NIP sudah ada di data atau > belum > Dim Cari As Range > > ' deklarasikan variabel bertipe Long untuk menyimpan nomor baris data > yang paling akhir > Dim idxRow As Long > > ' ini adalah proses pengecekan apakah NIP tersebut sudah ada di data > atau belum > ' simpan NIP dari cell C2 ke dalam variabel yang bernama sCari > sCari = Range("c2").Value > > ' lakukan pencarian NIP mulai dari cell C8 sampai baris data yang > paling bawah > ' perhatian!!! pada contoh ini data pertama NIP ada pada cell C8 > ' jika berbeda maka sesuaikan lokasinya > Set Cari = Range(Range("c8"), Range("c8").End(xlDown)).Find(sCari) > > > ' jika ditemukan maka > If Not Cari Is Nothing Then > > ' tampilkan pesan kepada user bahwa NIP tersebut sudah ada di data > MsgBox "NIP tersebut sudah ada", vbOKOnly + vbExclamation, > "Validasi Data" > > ' karena sudah ada maka keluar dari prosedur > Exit Sub > > ' ini adalah akhir dari pengecekan keberadaan NIP pada data > End If > > ' jika sampai ke sini berarti data belum ada > ' bikin 2 baris bantu, 1 sebagai header di baris 8 > ' dan di baris 9 adalah lokasi penulisan data > ' Perhatian!!! insert baris dimulai dari baris data pertama > ' jika lokasinya berbeda maka lakukan penyesuaian > Range("a8:a9").EntireRow.Insert > > ' bikin header di setiap kolom baris bantu yang tadi sudah dibuat > Range("a8").Value = "No" > Range("b8:r8").Value = Range("b1:r1").Value > > ' copas data input ke tabel > Range("b2:r2").Copy > Range("b9").PasteSpecial xlPasteValuesAndNumberFormats > Application.CutCopyMode = False > > ' sekarang saatnya melakukan sortir data > ' pergi ke cell B8, ini adalah header dari baris bantu yang sudah > dibuat > Range("B8").Select > ' blok seluruh data ke arah kanan dan ke arah bawah > Range(Selection, Selection.End(xlToRight).End(xlDown)).Select > > ' jika ada sort sebelumnya, maka hapus dahulu sort tersebut > Sheets("ks dan guru").Sort.SortFields.Clear > > ' sort descending berdasarkan Golongan, headernya ada di cell D8 > Sheets("ks dan guru").Sort.SortFields.Add Key:=Range("d8"), _ > SortOn:=xlSortOnValues, Order:=xlDescending, > DataOption:=xlSortNormal > > ' sort descending berdasarkan Tahun tugas, headernya ada di cell H8 > ActiveWorkbook.Worksheets("ks dan guru").Sort.SortFields.Add > Key:=Range("h8"), _ > SortOn:=xlSortOnValues, Order:=xlDescending, > DataOption:=xlSortNormal > > ' sort Descending berdasarkan Bulan tugas, headernya ada di cell I8 > ActiveWorkbook.Worksheets("ks dan guru").Sort.SortFields.Add > Key:=Range("i8"), _ > SortOn:=xlSortOnValues, Order:=xlDescending, > DataOption:=xlSortNormal > > ' sekarang bekerja pada proses sort di sheet KS dan Guru > With Sheets("ks dan guru").Sort > ' atur range data yang akan disort, mulai dari aktif cell (B8) ke > arah kanan dan bawah > .SetRange Range(ActiveCell, ActiveCell.End(xlToRight).End(xlDown)) > ' baris pertama adalah header data > .Header = xlYes > ' sort bukan berdasarkan case sensitif > .MatchCase = False > ' sort dilakukan dari atas ke bawah > .Orientation = xlTopToBottom > ' defaultnya adalah xlPinYin > .SortMethod = xlPinYin > ' terapkan sort berdasarkan kriteria yang telah ditentukan > .Apply > > ' akhir bekerja dengan proses sort pada sheet KS dan Guru > End With > > ' cari nomor baris data terakhir dan simpan di variabel idxRow > idxRow = ActiveCell.End(xlDown).Row > > ' bikin nomor urut > Range("a9").Value = 1 > Range("a10").Value = 2 > Range("a9:a10").AutoFill Range(Cells(9, 1), Cells(idxRow, 1)) > > ' hapus baris bantu > Range("b8").EntireRow.Delete > > ' pergi ke cell A1, biar keliatan lebih cantik aja > Range("a1").Select > > ' ini adalah akhir dari prosedur input dan simpan > End Sub > > untuk menjalankannya, buat sebuah objek berupa tombol, shape, atau mungkin > kalo mau sedikit narsis boleh lah pakai foto xixixi :D > assign macro tersebut ke dalam objek tadi dengan cara klik kanan pada > objek tersebut > > setelah itu setiap selesai input data klik objek tersebut > > file terlampir hanya disisakan 1 buah sheet saja, untuk mengurangi ukuran > file, semoga OP bersedia mempelajari script tersebut sehingga untuk > penerapan ke sheet yang lain akan lebih mudah > > Best Regard, > > -Ms. Jan Raisin- > > > > > Pada 13 Desember 2012 15:03, Mr. Kid > <[email protected]<http://mc/[email protected]> > > menulis: > > ** > > > Berhubung belum ada file susulan sebagai contoh datanya, dilampirkan file > asli yang telah dikurangi jumlah datanya. > > Mohon hati-hati bagi yang ne-reply, karena file sudah mendekati batas > maksimal ukuran file yang ditentukan dalam peraturan milis. > > Wassalam, > Kid. > > > > 2012/12/13 Dian Anas > <[email protected]<http://mc/[email protected]> > > > > ** > > > para master excel yang budiman. > saya mau tanya, apakah sorting otomatis pada excel itu bisa dilakukan > ketika kita memasukan data baru contohnya kalau kita memasukkan data > golongan IV/a dengan masa kerja 23 tahun maka akan diatas golongan IV/a > yang masa kerjanya 22 tahun. terima kasih pencerahannya. > > --- Mods --- > File lampiran yang sebesar 492KB tersandera. Kita tunggu kiriman file yang > lebih sesuai peraturan milis (<250KB) dari sdr/i Dian. > ------------ > > > > >

