Quantcast

[belajar-excel] CARA MEMBUAT KODE MACRO UNTUK CEK KELOMPOK NAMA?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[belajar-excel] CARA MEMBUAT KODE MACRO UNTUK CEK KELOMPOK NAMA?

winuaji rk
Yth master excel semua
saya bermaksud membuat userform untuk input data seperti TERLAMPIR.
BULAN merupakan combo box yang terdiri plihan JANUARI-DESEMBER yang menentukan data masuk ke sheet yang mana.
TANGGAL merupakan combo box yang berisi tanggal sesuai  plihan BULAN
NAMA terdiri dari 10 combo box dengan isi list yang sama sesuai dengan list pada sheet NAMA. jika ada penambahan atau pengurangan Nama tinggal edit sheet NAMA maka isi combo box NAMA juga berubah. 10 combo box nama ini tidak harus diisi semua. jika kosong maka data yang diinput juga kosong.
Command button CEK berfungsi melakukan cek apakah nama nama sudah dinput pada tanggal dan bulan yang dipilih atau belum. jika belum pernah di input sebelumnya, maka akan muncul MESSAGE BOX 'Apakah data mau disimpan?' (YES/NO). Jika ada salah satu nama yang sudah pernah diinput, maka semua data nama yang dipilih tidak akan disimpan dan muncul MESSAGE BOX nama nama yang sudah pernah diinput (sebagai informasi kepada penginput)

PROSESNYA : bulan dan tanggal di pilih, selanjutnya nama juga dipilih (tidak harus diisi semua), maka nama nama yang di pilih akan diinput pada kolom tanggal yang dipilih sesuai Bulannya.

contoh  : pada kolom 4 JANUARI sudah pernah diinput KELOMPOK nama EKO,BUDI, ARYA.  kemudian kita ingin menginput KELOMPOK nama EKO, ARYA, ANDI, MEGA, HARDI. setelah KELOMPOK nama ini di masukkan ke userorm dan klik CEK maka kelima nama tersebut tidak akan disimpan karena ada nama EKO dan ARYA sudah pernah diinput. dan akan muncul MESSAGE BOX 'nama berikut sudah ada : EKO, ARYA'

mOHON PENCERAHANNYA KEPADA PARA MASTER SEKALIAN, karena saya newbie di milis ini, jika ada topik yang mirip dengan kasus diatas bisa di informaikan untuk saya pelajari

Regards

Winuaji

CEK KELOMPOK NAMA.xls (214K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [belajar-excel] CARA MEMBUAT KODE MACRO UNTUK CEK KELOMPOK NAMA?

Ki_Semprul
'== module Userform1 ==
[image: Inline image 1]
Dim i As Integer, Namas As Range, EntryRange As Range
' vba code rakitan Ki Semprul, 18 Feb 2012
' untuk milis BeExcel - kasus No. 15841
' http://tech.groups.yahoo.com/group/belajar-excel/message/15841

Private Sub UserForm_Initialize()
   '-- mengisi Combox BULAN
   CboBulan.Clear
   For i = 1 To 12
      CboBulan.AddItem WorksheetFunction.Text(28 * i, "[$-421]MMMM")
   Next
   '-- mengisi 10 buah Combox Nama
   Dim Ctrl As Object
   Set Namas = Sheets("NAMA").Cells(1).CurrentRegion
   For Each Ctrl In Me.Controls
      If Ctrl.Name Like "CboNama*" Then
         Ctrl.Clear
         For i = 1 To Namas.Rows.Count
            Ctrl.AddItem Namas(i, 1)
         Next i
         Ctrl.ListRows = Namas.Rows.Count
      End If
   Next Ctrl
End Sub

Private Sub CboBulan_AfterUpdate()
   ' mengisi daftar angka tgl sesuai umur bulan
   ' yg terpilih pada cboBulan
   '-------------------------------------------
   ' Pemilihan BULAN menyebabkan worksheet senama DiAktifkan
   Worksheets(CboBulan.Value).Activate
   Dim TgAkir As Integer, tg As Integer
   ' mencari Tgl akhir Bulan sesuai CboBulan
   TgAkir = Day(DateSerial(Year(Date), CboBulan.ListIndex + 2, 0))
   ' mengganti items CboTgl sesuai Bulannya
   CboTgl.Clear
   For tg = 1 To TgAkir
      CboTgl.AddItem tg
   Next tg
   CboTgl.ListRows = TgAkir
End Sub

Private Sub CboTgl_Change()
   ' menentukan Range dimana data akan di-entry
   If CboTgl <> "" Then
      Set EntryRange = ActiveSheet.Cells(2, CboTgl).Resize(10, 1)
      EntryRange.Select
   End If
End Sub

Private Sub Cmd_Cek_Click()
   ' vba code rakitan Ki Semprul, 18 Feb 2012
   ' untuk milis BeExcel - kasus No. 15841
   ' http://tech.groups.yahoo.com/group/belajar-excel/message/15841
   '----------------------------------------------------------------
   '== proses Jika Tombol CEK di ceKlik===
   Dim EntryList As String, BedaList As String, DatList(1 To 10)
   Dim N As Integer, Cbox As Object
   '-- warning& validasi Bulan & Tgl
   If CboBulan.ListIndex = -1 Then
      MsgBox "BULAN belum ditentukan !", 48
      CboBulan.SetFocus
      Exit Sub
   End If
   If CboTgl.ListIndex = -1 Then
      MsgBox "Tanggal belum ditentukan", 48
      CboTgl.SetFocus
      Exit Sub
   End If
   ' menentukan Range dimana data akan di-entry
   Set EntryRange = ActiveSheet.Cells(2, CboTgl).Resize(10, 1)
   EntryRange.Select
   ' membuat daftar isi data di entryRange, jika ada
   If WorksheetFunction.CountA(EntryRange) > 0 Then
      EntryList = "|"
      For i = 1 To 10
         If Not EntryRange(i, 1) = vbNullString Then
            EntryList = EntryList & EntryRange(i, 1) & "|"
         End If
      Next i
   End If
   ' membuat daftar isi CboNama
   For i = 1 To 10
      Set Cbox = Controls("CboNama" & Format(i, "00"))
      If Cbox.ListIndex >= 0 Then
         DatList(i) = Cbox.Value
         ' dibandingkan dengan isi EntryRange
         ' untuk membuat daftar yg SUDAH ada di EntryRange
         If InStr(1, EntryList, "|" & Cbox.Value & "|", vbTextCompare) > 0
Then
            BedaList = BedaList & Cbox.Value & "," & vbCrLf
         End If
      End If
   Next i
   ' pesan jika EntriRange ada isinya,
   If Len(BedaList) > 0 Then
      MsgBox "Nama¬≤ berikut ini sudah ada di Tabel " & _
      CboBulan & " :" & vbCrLf & BedaList & vbCrLf & vbCrLf & _
      "Proses Entry dibatalkan.", 48
      ' pembatalan proses
      Exit Sub
   Else
      ' Pesan Jika Entri bisa diproses ..
      MsgBox "Area Entry masih kosong," & vbCrLf & _
      " Entry data segera dilakukan", 64
      For i = 1 To 10
         EntryRange(i, 1) = DatList(i)
      Next i
   End If
   '-mengosongkan 10 CboBox Nama
   For i = 1 To 10
      Set Cbox = Controls("CboNama" & Format(i, "00"))
      Cbox.ListIndex = -1
   Next i
End Sub

Private Sub Cmd_Close_Click()
   ' Userform di-UnLoad..
   Unload Me
End Sub

'--------------------------------




*2012/2/18 winuaji rk <[hidden email]>
>
> Yth master excel semua
> saya bermaksud membuat userform untuk input data seperti TERLAMPIR.
> BULAN merupakan combo box yang terdiri plihan JANUARI-DESEMBER yang
menentukan data masuk ke sheet yang mana.
> TANGGAL merupakan combo box yang berisi tanggal sesuai plihan BULAN
> NAMA terdiri dari 10 combo box dengan isi list yang sama sesuai dengan
list pada sheet NAMA. jika ada penambahan atau pengurangan Nama tinggal
edit sheet NAMA maka isi combo box NAMA juga berubah. 10 combo box nama ini
tidak harus diisi semua. jika kosong maka data yang diinput juga kosong.
> Command button CEK berfungsi melakukan cek apakah nama nama sudah dinput
pada tanggal dan bulan yang dipilih atau belum. jika belum pernah di input
sebelumnya, maka akan muncul MESSAGE BOX 'Apakah data mau disimpan?'
(YES/NO). Jika ada salah satu nama yang sudah pernah diinput, maka semua
data nama yang dipilih tidak akan disimpan dan muncul MESSAGE BOX nama nama
yang sudah pernah diinput (sebagai informasi kepada penginput)
>
> PROSESNYA : bulan dan tanggal di pilih, selanjutnya nama juga dipilih
(tidak harus diisi semua), maka nama nama yang di pilih akan diinput pada
kolom tanggal yang dipilih sesuai Bulannya.
>
> contoh : pada kolom 4 JANUARI sudah pernah diinput KELOMPOK nama
EKO,BUDI, ARYA. kemudian kita ingin menginput KELOMPOK nama EKO, ARYA,
ANDI, MEGA, HARDI. setelah KELOMPOK nama ini di masukkan ke userorm dan
klik CEK maka kelima nama tersebut tidak akan disimpan karena ada nama EKO
dan ARYA sudah pernah diinput. dan akan muncul MESSAGE BOX 'nama berikut
sudah ada : EKO, ARYA'
>
> mOHON PENCERAHANNYA KEPADA PARA MASTER SEKALIAN, karena saya newbie di
milis ini, jika ada topik yang mirip dengan kasus diatas bisa di
informaikan untuk saya pelajari
>
> Regards
>
> Winuaji*

form dataEntry.PNG (19K) Download Attachment
Data Entri - CEK KELOMPOK NAMA (vba-excel Ki Semprul V1).rar (44K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[belajar-excel] Re: CARA MEMBUAT KODE MACRO UNTUK CEK KELOMPOK NAMA?

winuaji rk
terima kasih atas bantuan master ki semprul. mohon maaf baru sempat cek email. sedikit sedikit saya coba dulu dan pelajari kode yang ki semprul kasih. apabila masih menemukan kesulitan mohon kiranya master ki semprul masih berkenan membantu

terima kasih


--- In [hidden email], Ki Semprul <semprul.ki@...> wrote:

>
> '== module Userform1 ==
> [image: Inline image 1]
> Dim i As Integer, Namas As Range, EntryRange As Range
> ' vba code rakitan Ki Semprul, 18 Feb 2012
> ' untuk milis BeExcel - kasus No. 15841
> ' http://tech.groups.yahoo.com/group/belajar-excel/message/15841
>
> Private Sub UserForm_Initialize()
>    '-- mengisi Combox BULAN
>    CboBulan.Clear
>    For i = 1 To 12
>       CboBulan.AddItem WorksheetFunction.Text(28 * i, "[$-421]MMMM")
>    Next
>    '-- mengisi 10 buah Combox Nama
>    Dim Ctrl As Object
>    Set Namas = Sheets("NAMA").Cells(1).CurrentRegion
>    For Each Ctrl In Me.Controls
>       If Ctrl.Name Like "CboNama*" Then
>          Ctrl.Clear
>          For i = 1 To Namas.Rows.Count
>             Ctrl.AddItem Namas(i, 1)
>          Next i
>          Ctrl.ListRows = Namas.Rows.Count
>       End If
>    Next Ctrl
> End Sub
>
> Private Sub CboBulan_AfterUpdate()
>    ' mengisi daftar angka tgl sesuai umur bulan
>    ' yg terpilih pada cboBulan
>    '-------------------------------------------
>    ' Pemilihan BULAN menyebabkan worksheet senama DiAktifkan
>    Worksheets(CboBulan.Value).Activate
>    Dim TgAkir As Integer, tg As Integer
>    ' mencari Tgl akhir Bulan sesuai CboBulan
>    TgAkir = Day(DateSerial(Year(Date), CboBulan.ListIndex + 2, 0))
>    ' mengganti items CboTgl sesuai Bulannya
>    CboTgl.Clear
>    For tg = 1 To TgAkir
>       CboTgl.AddItem tg
>    Next tg
>    CboTgl.ListRows = TgAkir
> End Sub
>
> Private Sub CboTgl_Change()
>    ' menentukan Range dimana data akan di-entry
>    If CboTgl <> "" Then
>       Set EntryRange = ActiveSheet.Cells(2, CboTgl).Resize(10, 1)
>       EntryRange.Select
>    End If
> End Sub
>
> Private Sub Cmd_Cek_Click()
>    ' vba code rakitan Ki Semprul, 18 Feb 2012
>    ' untuk milis BeExcel - kasus No. 15841
>    ' http://tech.groups.yahoo.com/group/belajar-excel/message/15841
>    '----------------------------------------------------------------
>    '== proses Jika Tombol CEK di ceKlik===
>    Dim EntryList As String, BedaList As String, DatList(1 To 10)
>    Dim N As Integer, Cbox As Object
>    '-- warning& validasi Bulan & Tgl
>    If CboBulan.ListIndex = -1 Then
>       MsgBox "BULAN belum ditentukan !", 48
>       CboBulan.SetFocus
>       Exit Sub
>    End If
>    If CboTgl.ListIndex = -1 Then
>       MsgBox "Tanggal belum ditentukan", 48
>       CboTgl.SetFocus
>       Exit Sub
>    End If
>    ' menentukan Range dimana data akan di-entry
>    Set EntryRange = ActiveSheet.Cells(2, CboTgl).Resize(10, 1)
>    EntryRange.Select
>    ' membuat daftar isi data di entryRange, jika ada
>    If WorksheetFunction.CountA(EntryRange) > 0 Then
>       EntryList = "|"
>       For i = 1 To 10
>          If Not EntryRange(i, 1) = vbNullString Then
>             EntryList = EntryList & EntryRange(i, 1) & "|"
>          End If
>       Next i
>    End If
>    ' membuat daftar isi CboNama
>    For i = 1 To 10
>       Set Cbox = Controls("CboNama" & Format(i, "00"))
>       If Cbox.ListIndex >= 0 Then
>          DatList(i) = Cbox.Value
>          ' dibandingkan dengan isi EntryRange
>          ' untuk membuat daftar yg SUDAH ada di EntryRange
>          If InStr(1, EntryList, "|" & Cbox.Value & "|", vbTextCompare) > 0
> Then
>             BedaList = BedaList & Cbox.Value & "," & vbCrLf
>          End If
>       End If
>    Next i
>    ' pesan jika EntriRange ada isinya,
>    If Len(BedaList) > 0 Then
>       MsgBox "Nama¬≤ berikut ini sudah ada di Tabel " & _
>       CboBulan & " :" & vbCrLf & BedaList & vbCrLf & vbCrLf & _
>       "Proses Entry dibatalkan.", 48
>       ' pembatalan proses
>       Exit Sub
>    Else
>       ' Pesan Jika Entri bisa diproses ..
>       MsgBox "Area Entry masih kosong," & vbCrLf & _
>       " Entry data segera dilakukan", 64
>       For i = 1 To 10
>          EntryRange(i, 1) = DatList(i)
>       Next i
>    End If
>    '-mengosongkan 10 CboBox Nama
>    For i = 1 To 10
>       Set Cbox = Controls("CboNama" & Format(i, "00"))
>       Cbox.ListIndex = -1
>    Next i
> End Sub
>
> Private Sub Cmd_Close_Click()
>    ' Userform di-UnLoad..
>    Unload Me
> End Sub
>
> '--------------------------------
>
>
>
>
> *2012/2/18 winuaji rk <winuaji_rk@...>
> >
> > Yth master excel semua
> > saya bermaksud membuat userform untuk input data seperti TERLAMPIR.
> > BULAN merupakan combo box yang terdiri plihan JANUARI-DESEMBER yang
> menentukan data masuk ke sheet yang mana.
> > TANGGAL merupakan combo box yang berisi tanggal sesuai plihan BULAN
> > NAMA terdiri dari 10 combo box dengan isi list yang sama sesuai dengan
> list pada sheet NAMA. jika ada penambahan atau pengurangan Nama tinggal
> edit sheet NAMA maka isi combo box NAMA juga berubah. 10 combo box nama ini
> tidak harus diisi semua. jika kosong maka data yang diinput juga kosong.
> > Command button CEK berfungsi melakukan cek apakah nama nama sudah dinput
> pada tanggal dan bulan yang dipilih atau belum. jika belum pernah di input
> sebelumnya, maka akan muncul MESSAGE BOX 'Apakah data mau disimpan?'
> (YES/NO). Jika ada salah satu nama yang sudah pernah diinput, maka semua
> data nama yang dipilih tidak akan disimpan dan muncul MESSAGE BOX nama nama
> yang sudah pernah diinput (sebagai informasi kepada penginput)
> >
> > PROSESNYA : bulan dan tanggal di pilih, selanjutnya nama juga dipilih
> (tidak harus diisi semua), maka nama nama yang di pilih akan diinput pada
> kolom tanggal yang dipilih sesuai Bulannya.
> >
> > contoh : pada kolom 4 JANUARI sudah pernah diinput KELOMPOK nama
> EKO,BUDI, ARYA. kemudian kita ingin menginput KELOMPOK nama EKO, ARYA,
> ANDI, MEGA, HARDI. setelah KELOMPOK nama ini di masukkan ke userorm dan
> klik CEK maka kelima nama tersebut tidak akan disimpan karena ada nama EKO
> dan ARYA sudah pernah diinput. dan akan muncul MESSAGE BOX 'nama berikut
> sudah ada : EKO, ARYA'
> >
> > mOHON PENCERAHANNYA KEPADA PARA MASTER SEKALIAN, karena saya newbie di
> milis ini, jika ada topik yang mirip dengan kasus diatas bisa di
> informaikan untuk saya pelajari
> >
> > Regards
> >
> > Winuaji*
>


Loading...