terima kasih atas pencerahannya semoga bermanfaat. amin. keep smiling

--- 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 simpanEnd 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]> 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]>


















 



  


    
      
      
      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.

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



    




    
     

    
    






  










    
     

    
    






  








Kirim email ke