Pak Amin,

1. Buat event KeyDown dari combobox (kenapa pakai combobox ya, ya wis lah)
dan isi dengan :
select case keycode
case 8,48 to 57        'tombol back atau tombol angka dari 0 sampai 9
case else              'lainnya
      keycode=0        'gak ada yang dipencet

      'pesan : (udah gak jaman lagi ngrusuhi user yang lagi fokus ngisi
dengan munculnya msgbox)
      beep             'sound dikit, daripada keluar msgbox yang mengganggu
user
end select

2. pada event click tombol save tambahkan bagian ini tepat sebelum bagian
penulisan ke worksheet :
'pengolah data partno
dim vNilai as variant

vnilai=trim$(replace$(ucase$(TbPartno.text),"3N1",vbnullstring))   'hapus
teks '3N1'
vnilai=left$(vnilai,instr(vnilai & " "," ")-1)  'ambil kode saja (asumsi
ada spasi pemisah kode dengan qty)

'buat jaga-jaga, siapa tahu Excel gak mau auto convert tipedata saat
ditulisi di bagian with di bawah sana
if isnumeric(vnilai) then   'cek isinya bisa jadi bilangan
    vnilai=clng(vnilai)     'konversi tipe data
endif

'penulis ke worksheet
with lastrow
   *'selain penulisan partno tetap seperti semula *
   'bagian penulis partno diganti menjadi :
   .cells(2,5).value=vnilai   'yang ditulis adalah nilai dalam variabel
vnilai
endwith

3. pakai textbox bernama textbox1 (apa adanya dalam file).
>> menunjukkan Rack-ID bila ada teman2 dari part tersebut
->1. buat event Exit untuk textbox partno
->2. isi dengan script berikut :
dim rngData as range, rng as range
dim sPart as string,sRackByPart as string

'simpan part tanpa 3n1 dan qty
spart=trim$(replace$(ucase$(TbPartno.text),"3N1",vbnullstring))   'hapus
teks '3N1'
spart=left$(vnilai,instr(spart & " "," ")-1)  'ambil kode saja (asumsi ada
spasi pemisah kode dengan qty)

'filter data yang ada berdasar spart
set rngdata=sheet3.range("c1").currentregion.resize(,1).offset(0,4)
with rngdata
   .parent.autofiltermode=false
   .autofilter 1,spart
   if .SpecialCells(xlCellTypeVisible).count>1 then
      for each rng in .offset(1).SpecialCells(xlCellTypeVisible)
           if lenb(rng.value)<>0 then
                  srackbypart=replace$(srackbypart,"," & spart) & "," &
spart
           endif
      next rng
      srackbypart=mid$(srackbypart,2)
   endif

   if lenb(srackbypart)<>0 then
          textbox1.text=srackbypart
   else
          textbox1.text="Tidak ada rack yang dipakai part " & spart
   endif
   textbox1.locked=true
   .parent.autofiltermode=false
endwith

>> Rack-ID bila dimasukkan data, akan menunjukkan bahwa tempat rack sudah
pernah ada, atau belum ada yang menempati, dan penunjukan pencarian data
->1. buat event Exit untuk textbox rack id
->2. isi dengan script berikut :
dim rngData as range
dim sPart as string,sRack as string

'simpan part tanpa 3n1 dan qty
spart=trim$(replace$(ucase$(TbPartno.text),"3N1",vbnullstring))   'hapus
teks '3N1'
spart=left$(vnilai,instr(spart & " "," ")-1)  'ambil kode saja (asumsi ada
spasi pemisah kode dengan qty)
srack=trim$(tbloc.text)

'filter data yang ada berdasar spart
set rngdata=sheet3.range("c1").currentregion.resize(,7).offset(0,4)
with rngdata
   .parent.autofiltermode=false
   .font.bold=false
   .autofilter 1,spart
   .autofilter 7,srack
   if .resize(,1).SpecialCells(xlCellTypeVisible).count>1 then
      .SpecialCells(xlCellTypeVisible).font.bold
      textbox1.text="Sudah dipakai part lain"
   else
      .parent.autofiltermode=false
   endif
   textbox1.locked=true
endwith

4. Sort data berdasar part.
>> pada event click tombol save tambahkan baris berikut tepat sebelum End
Sub
'set sortcolumns -> siapa tahu pernah dipakai sort rows
sheet3.range("c1").currentregion.sort
sheet3.range("g1"),xlascending,header:=xlyes,orientation:=xlsortcolumns

Cara buat prosedur event dari control object yang ada di userform
1. ke VBE
2. double click si userform
3. double click si control yang akan dibuatkan prosedur event
4. setelah masuk ke lembar script, lihat combobox di kanan atas layar,
5. pilih nama event yang akan dibuat hingga terbentuk blok prosedur mulai
dari private sub ... sampai  end sub

Wassalam,
Kid.


2012/12/1 ngademin Thohari <[email protected]>

> **
>
>
>
> Be-exceller
>
> Bisakah master2 sekalian menyempurnakan hasil perkerjaan saya, yang masih
> banyak kendala seperti di bawah ini
>
>
> 1. di dalam kolom qty (quantity), yang akan di masukkan adalah angka, bila
> ada huruf yang diInput maka data tidak bisa masuk ke dalam table data dan
> memberikan errror message, dan bila datanya benar dan bisa masuk kedalam
> table data maka akan menunjukkan ke remain qty dari total part no. tersebut.
>
> 2. Dalam label yang di scan data ada beberapa data yang berbeda, ada yang
> menunjukkan Angka 3N1 didalam part no. dan ada juga yang tidak ada 3N1,
> serta ada yang menunjukkan 3N1 dan dibelakang part no. ada value lain 2500
> dan yang lain2 ,data di awal 3N1 dan dibelakang Part no. dihilangkan bila
> masuk ke table data dari form input
>
> 3. menunjukkan Rack-ID bila ada teman2 dari part tersebut, Rack-ID bila
> dimasukkan data, akan menunjukkan bahwa tempat rack sudah pernah ada, atau
> belum ada yang menempati, dan penunjukan pencarian data
>
> 4. Data selama ini harus di sort dahulu, bila ada data masuk langsung ke
> automatic sort.
>
>
> mohon bantuannya karena system yang saya implementasikan banyak menemui
> kendala, berikut lampirannya
>
> terima kasih
>
> amin
>
>  
>

Kirim email ke