Senin, 03 Desember 2012

[belajar-excel] Digest Number 1947

7 New Messages

Digest #1947
1a
Bls: [belajar-excel] Input data berdasar no induk by "Debora Christy" debora.christy@rocketmail.com
2c
Re: kombinasi 5 huruf ABCDE jadi 4 digit by "Mr. Kid" nmkid.family@ymail.com
3a
Re: Fw: [belajar-excel] mengganti di lain sheet by "Titis Ardiyana Wulandari" tiez_2289
3b
Re: Fw: [belajar-excel] mengganti di lain sheet by "Mr. Kid" nmkid.family@ymail.com
4a
Bls: [belajar-excel] tracebility part gudang by "ngademin Thohari" ngademinth

Messages

Mon Dec 3, 2012 11:07 am (PST) . Posted by:

"Debora Christy" debora.christy@rocketmail.com

Terima kasih miss jan atas bantuannya, setelah diperbaiki akhirnya data dapat terinput satu per satu...
Terima kasih sekali lagi miss...

________________________________
Dari: Jan Raisin <miss.jan.raisin@gmail.com>
Kepada: belajar-excel@yahoogroups.com
Dikirim: Senin, 3 Desember 2012 13:32
Judul: Re: [belajar-excel] Input data berdasar no induk


 
Dear Debora,

Coba kita bahas satu persatu script dari mbak Debora, berdasarkan bentuk script yang mbak Debora sertakan Jan anggap ini adalah hasil dari rekam macro

Sub Macro3() ' >>> nama prosedurnya Macro3
' baris berikut sampai beberapa baris di bawah adalah keterangan yang dibuat oleh Excel saat melakukan perekaman macro
' Macro3 Macro
'

'
    Sheets("KALKULATOR").Select   ' pindah ke sheet kalkulator 
    Range("N11").Select   ' memilih cell N11 (mode relatif Off)
    ActiveCell.Offset(1, 0).Range("A1").Select   ' dari cell N11 turun 1 baris ke bawah (mode relatif Off)
    Range(Selection, Selection.End(xlToRight)).Select   ' dari cell N12 melakukan blok ke arah kanan sampai data terakhir, posisi data terakhir tidak diketahui tetapi masih di baris 12
    Selection.Copy   ' dilakukan proses copy terhadap data yang sudah dipilih 
    Sheets("GLOBAL REPORT").Select   ' pindah ke sheet global report
    ActiveCell.Select   ' pada sebuah cell yang aktif, posisi cell tidak diketahui (mode relatif ON)
   ' seharusnya setelah pindah ke sheet global report, mode relatif dimatikan dahulu, lalu pergi ke header suatu data, setelah itu baru mode relatif diaktifkan kembali, setelah itu turun ke data terakhir dan baris baru.
   ' kenapa harus begitu? agar jika letak cell aktif dipindahkan tidak terjadi kesalahan penempatan data
    ActiveCell.Offset(1, 0).Range("A1").Select   ' dari cell tersebut turun 1 baris ke bawah (mode relatif ON)
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False   ' pada cell yang aktif dilakukan paste nilai dan number format
    

    ' kenapa bisa muncul data 2x ? karena proses rekamnya juga 2x, mulai dari baris ini adalah yang membuat data menjadi dobel,
    ' solusi: hapus script di bawah ini sampai baris di atas End Sub
    Sheets("KALKULATOR").Select   ' kembali lagi ke sheet kalkulator
    ActiveCell.Select   ' pada cell yang aktif (mode relatif ON), letak cell tidak diketahui, tetapi kalo dilihat dari alur sebelumnya maka seharusnya saat ini berada di cell N12
    ActiveCell.Select   ' memilih lagi cell yang aktif tadi dengan mouse (mode relatif ON)
    Range(Selection, Selection.End(xlToRight)).Select ' melakukan blok range ke arah kanan sampai data terakhir (mode relatif ON)
    Application.CutCopyMode = False   ' menonaktifkan mode copy paste
    Selection.Copy   ' melakukan proses copy terhadap range data yang tadi sudah diblok
    Sheets("GLOBAL REPORT").Select   ' pindah ke sheet global report
    ActiveCell.Select   ' pada cell yang aktif, posisi tidak diketahui (mode relatif ON)
    ActiveCell.Offset(1, 0).Range("A1").Select   ' dari cell yang aktif dan tidak diketahui posisinya, turun 1 baris ke bawah (mode relatif ON)
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False   ' pada cell aktif melakukan proses paste nilai dan format number
End Sub   ' akhir dari prosedur

by the way, any way, bus way.. jika mbak Debora sudah biasa melakukan proses penulisan langsung ke VB Editor (VBE), maka ada baiknya mempergunakan proses penulisan langsung karena ada beberapa hal yang bisa dihindari, misalnya proses Select yang tidak dibutuhkan atau pada saat melakukan copas data maka scriptnya bisa dibuat lebih singkat. Selain itu dengan menulis langsung maka mbak Debora akan terbiasa bermain dengan variabel-variabel yang kelak akan berguna pada saat proses rekam macro sudah tidak memungkinkan untuk menghasilkan solusi yang dibutuhkan.

Best Regard,

-Ms. Jan Raisin-

Mon Dec 3, 2012 11:08 am (PST) . Posted by:

"Hobys Mengamati"

thx Ms Jan Raisin
 
kalau hanya sekedar ingin mengetahui jumlah kombinasi yang dapat dibuat maka gunakan fungsi Conbin
=Combin(jumlah_huruf_tersedia , jumlah_huruf_digunakan)
=Combin(5 , 4)
dalam matematika setara dengan 5C4

kalo
yang dicari adalah Permutasi maka fungsi Combin diganti dengan Permut,
jangan sampai terbalik menggunakan antara Permutasi dengan Kombinasi

Best Regard,

-Ms. Jan Raisin-
Pada 30 November 2012 19:29, Hobys Mengamati <hobysmengamati@yahoo.com> menulis:

dear exceler,

ada berapa kemungkinan kombinasi 5 huruf ABCDE jadi 4 digit, mis; ABCD ABCE ACDE dst? trims

Mon Dec 3, 2012 11:08 am (PST) . Posted by:

"Hobys Mengamati"

thx Mr Kid, bisakah disisipkan di Module1 (office 2k) dr Tools Macros lalu muncul Module1 lalu copy-paste macro tsb? Apakah bisa jika hanya memakai fungsi index tanpa macro tsb? thx.

Mencari jumlah item permutasi atau kombinasi sudah dijelaskan oleh miss Jan.

Untuk menyusun daftar permutasi, coba gunakan UDF Permutasi pada file terlampir.
UDF
(User Defined Function = Fungsi buatan sendiri) adalah prosedur
Function yang bisa disusun dengan VBA (seperti pada file terlampir)
untuk bisa digunakan layaknya menggunakan fungsi bawaan Excel.

Syarat : Prosedur fungsi Permutasi beserta seluruh prosedur yang
dibutuhkan oleh prosedur Permutasi harus selalu ada dalam lembar
VBProject file tersebut.

Pastikan VBA (Macro) diijinkan bekerja oleh security komputer Anda.

Wassalam,
Kid.

2012/11/30 Jan Raisin <miss.jan.raisin@gmail.com>

 

kalau hanya sekedar ingin mengetahui jumlah kombinasi yang dapat dibuat maka gunakan fungsi Conbin

=Combin(jumlah_huruf_tersedia , jumlah_huruf_digunakan)
=Combin(5 , 4)
dalam matematika setara dengan 5C4

kalo
yang dicari adalah Permutasi maka fungsi Combin diganti dengan Permut,
jangan sampai terbalik menggunakan antara Permutasi dengan Kombinasi

Best Regard,

-Ms. Jan Raisin-
Pada 30 November 2012 19:29, Hobys Mengamati <hobysmengamati@yahoo.com> menulis:

 

dear exceler,

ada berapa kemungkinan kombinasi 5 huruf ABCDE jadi 4 digit, mis; ABCD ABCE ACDE dst? trims

Mon Dec 3, 2012 11:33 am (PST) . Posted by:

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

Pak Hoby,

Semua prosedur dalam Module1 yang berkaitan dengan fungsi bernama Permutasi
harus ada agar fungsi Permutasi dapat digunakan seperti Bapak menggunakan
fungsi bawaan Excel lainnya. Bapak bisa meng-copy script dalam module
tersebut ke module di file lain.

Jika prosedur fungsi Permutasi beserta seluruh prosedur yang dibutuhkan
tidak ada, maka fungsi Permutasi tidak dapat digunakan dalam worksheet.
Fungsi Permutasi digunakan untuk menyusun daftar permutasi item. Fungsi
Index digunakan untuk merujuk ke suatu array data. Jadi fungsi Index
bukanlah penyusun daftar permutasi. Jika hanya menggunakan fungsi Index,
maka tidak akan didapatkan data apapun karena data daftar permutasi didapat
menggunakan fungsi Permutasi.

File berisi module Permutasi bisa di save as Excel Add-In (.xla). Semua
komputer yang memiliki file add in tersebut dan sudah mengaktifkannya akan
dapat menggunakan fungsi tersebut diseluruh workbook yang dibukanya.

Wassalam,
Kid.

2012/12/4 Hobys Mengamati <hobysmengamati@yahoo.com>

> **
>
>
> thx Mr Kid, bisakah disisipkan di Module1 (office 2k) dr Tools Macros lalu
> muncul Module1 lalu copy-paste macro tsb? Apakah bisa jika hanya memakai
> fungsi index tanpa macro tsb? thx.
>
>
>
>
>
> Mencari jumlah item permutasi atau kombinasi sudah dijelaskan oleh miss
> Jan.
>
> Untuk menyusun daftar permutasi, coba gunakan UDF Permutasi pada file
> terlampir.
> UDF (User Defined Function = Fungsi buatan sendiri) adalah prosedur
> Function yang bisa disusun dengan VBA (seperti pada file terlampir) untuk
> bisa digunakan layaknya menggunakan fungsi bawaan Excel.
>
> Syarat : Prosedur fungsi Permutasi beserta seluruh prosedur yang
> dibutuhkan oleh prosedur Permutasi harus selalu ada dalam lembar VBProject
> file tersebut.
>
> Pastikan VBA (Macro) diijinkan bekerja oleh security komputer Anda.
>
> Wassalam,
> Kid.
>
> 2012/11/30 Jan Raisin <miss.jan.raisin@gmail.com<http://us.mc1217.mail.yahoo.com/mc/compose?to=miss.jan.raisin@gmail.com>
> >
>
>
> kalau hanya sekedar ingin mengetahui jumlah kombinasi yang dapat dibuat
> maka gunakan fungsi Conbin
>
> =Combin(jumlah_huruf_tersedia , jumlah_huruf_digunakan)
> =Combin(5 , 4)
>
> dalam matematika setara dengan 5C4
>
> kalo yang dicari adalah Permutasi maka fungsi Combin diganti dengan
> Permut, jangan sampai terbalik menggunakan antara Permutasi dengan Kombinasi
>
> Best Regard,
>
>
> -Ms. Jan Raisin-
>
> Pada 30 November 2012 19:29, Hobys Mengamati <hobysmengamati@yahoo.com<http://us.mc1217.mail.yahoo.com/mc/compose?to=hobysmengamati@yahoo.com>
> > menulis:
>
>
> dear exceler,
>
> ada berapa kemungkinan kombinasi 5 huruf ABCDE jadi 4 digit, mis; ABCD
> ABCE ACDE dst? trims
>
>
>

Mon Dec 3, 2012 11:08 am (PST) . Posted by:

"Titis Ardiyana Wulandari" tiez_2289

Pak Kid,

saya mau tanya lagi,
ketika saya mencoba menggunakan rumus yg diberikan kemaren untuk mengakumulasi ternyata bisa.
tetapi untuk menghitung sheet G38-G46 tidak berfungsi.

minta pencerahannya lagi..
terimakasih banyak..

________________________________
From: Mr. Kid <mr.nmkid@gmail.com>
To: belajar-excel@yahoogroups.com
Sent: Sunday, December 2, 2012 4:19 PM
Subject: Re: Fw: [belajar-excel] mengganti di lain sheet


 
mbak Wulan,

operator <> artinya bukan
C$4:C$12<>"cuti"
bahasa manusianya :
"setiap isi data bukanlah kata 'cuti'"

Ekspresi di atas akan menghasilkan TRUE (setara 1) atau FALSE (setara 0)
Jadi pada formula (misal) :
=SUM(($B$4:$B$12=$B23)*(C$4:C$12<>"cuti"))
yang biru menghasilkan 9 angka (9 item array) yang berisi 1 atau 0 sesuai kondisi nama di tabel data sama atau tidak dengan nama pada baris yang dikalkulasi
yang merah menghasilkan 9 angka (9 item array) yang berisi 1 atau 0 sesuai kondisi nilai data di minggu itu bukan berisi tulisan 'cuti' atau tidak
setiap angka yang bersesuaian kemudian dikalikan (setara operator logika AND)
maka hasilnya akan berupa 9 angka berisi 1 atau 0
9 angka inilah yang di-Sum

Jadi, jika di B4,B12, B23 berisi nama 'Kid' dan C4,C12 isinya bukan 'Cuti', maka formula akan menghasilkan minimal angka 2 tergantung data di cell B5 sampai B11 dan cell C5 sampai C11.

Wassalam,
Kid.

2012/12/2 Titis Ardiyana Wulandari <tiez_2289@yahoo.com>


>Mr. Kid,
>
>
>salam kenal Pak Kid..
>subhanallah rumusnya topcer,
>1 yg saya kurang paham, mohon penjelasan tentang "(C$4:C$12<>"cuti")"
>
>
>terimakasih banyak..
>
>
>----- Forwarded Message -----
>From: Mr. Kid <mr.nmkid@gmail.com>
>To: belajar-excel@yahoogroups.com
>Sent: Sunday, December 2, 2012 3:19 PM
>Subject: Re: [belajar-excel] mengganti di lain sheet
>
>

>Hai Wulan,
>
>mbak Wulan bisa menggunakan fungsi CountIFs (xl2007 ke atas) atau SumProduct yang bisa untuk semua versi dan ndak perlu sebagai array formula.
>om array formula di cell C23 pengen salim sama mbak Wulan, mungkin mengajak kenalan. Katanya tak kenal maka tak sayang.
>bagini caranya kenalan :
>1. tulis di C23 formula berikut tapi jangan sekali-kali tekan Enter :
>     =SUM(($B$4:$B$12=$B23)*(C$4:C$12<>"cuti"))
>2. kemudian tekan 3 tombol ini bersamaan :
>     CTRL   SHIFT   ENTER
>
>fyi.
>array formula akan banyak membantu dalam proses kalkulasi yang lebih kompleks. Sebaiknya setiap Excel User bisa berkenalan dengan om array formula yang guanteng.
>
>Kalau masih jual mahal gak mau kenalan sama om array formula, ya sudah. Coba salah satu dari formula dibawah ini (tetap di cell C23) :
>formula 1 : (semua versi Excel)
>     =SUMPRODUCT(($B$4:$B$12=$B23)*(C$4:C$12<>"cuti"))
>formula 2 : (Excel 2007 ke atas)
>     =COUNTIFS($B$4:$B$12,$B23,C$4:C$12,"<>cuti")
>
>
>Semua formula di atas di copy ke kolom lainnya dan baris lainnya dalam sebuah blok minggu.
>Untuk blok minggu lainnya :
>>> copy cell C23 ke blok minggu baru
>>> ubah rujukan ke tabel data agar sesuai dengan data minggu tersebut
>>> akhiri dengan CTRL  SHIFT  ENTER jika array formula atau cukup dengan ENTER jika bukan array formula
>
>Wassalam,
>Kid.
>
>
>
>
>2012/12/2 Titis Ardiyana Wulandari <tiez_2289@yahoo.com>
>
>
>> 
>>dear All,
>>
>>
>>saya mengalami kesulitan saat mengganti posisi tempat orang seperti contoh di attach files.
>>di cell j9 & k9 wawan cuti, tapi karena minggu ke 2 tsb ada perubahan tempat posisi kerja, mengakibatkan di  bagian perhitungan ada kesalahan hitung seperti cell j28 & k28, seharusnya nilai 0 untuk wawan bukan doni.
>>mohon pencerahannya menggunakan rumus apa supaya nilai2 perhitungan tetap sesuai list orangnya biarpun di jadwal orangnya berpindah2 tempat?
>>
>>
>>terimakasih banyak atas bantuannya.
>>semoga Allah membalas dengan lebih..
>
>
>

Mon Dec 3, 2012 11:22 am (PST) . Posted by:

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

Coba array formula :
=SUM(($B$4:$B$12=$B38)*($C$3:$G$3=$C$3:$G$3)*(LEFT($C$4:$G$12)=LEFT(C$37)))
>>ganti Sum dengan Sumproduct untuk entry formula bukan sebagai array
formula

Wassalam,
Kid.

2012/12/3 Titis Ardiyana Wulandari <tiez_2289@yahoo.com>

> **
>
>
> Pak Kid,
>
> saya mau tanya lagi,
> ketika saya mencoba menggunakan rumus yg diberikan kemaren untuk
> mengakumulasi ternyata bisa.
> tetapi untuk menghitung sheet G38-G46 tidak berfungsi.
>
> minta pencerahannya lagi..
> terimakasih banyak..
>
> ------------------------------
> *From:* Mr. Kid <mr.nmkid@gmail.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Sunday, December 2, 2012 4:19 PM
> *Subject:* Re: Fw: [belajar-excel] mengganti di lain sheet
>
>
> mbak Wulan,
>
> operator <> artinya bukan
> C$4:C$12<>"cuti"
> bahasa manusianya :
> "setiap isi data bukanlah kata 'cuti'"
>
> Ekspresi di atas akan menghasilkan TRUE (setara 1) atau FALSE (setara 0)
> Jadi pada formula (misal) :
> =SUM(($B$4:$B$12=$B23)*(C$4:C$12<>"cuti"))
> yang biru menghasilkan 9 angka (9 item array) yang berisi 1 atau 0 sesuai
> kondisi nama di tabel data sama atau tidak dengan nama pada baris yang
> dikalkulasi
> yang merah menghasilkan 9 angka (9 item array) yang berisi 1 atau 0 sesuai
> kondisi nilai data di minggu itu bukan berisi tulisan 'cuti' atau tidak
> setiap angka yang bersesuaian kemudian dikalikan (setara operator logika
> AND)
> maka hasilnya akan berupa 9 angka berisi 1 atau 0
> 9 angka inilah yang di-Sum
>
> Jadi, jika di B4,B12, B23 berisi nama 'Kid' dan C4,C12 isinya bukan
> 'Cuti', maka formula akan menghasilkan minimal angka 2 tergantung data di
> cell B5 sampai B11 dan cell C5 sampai C11.
>
> Wassalam,
> Kid.
>
> 2012/12/2 Titis Ardiyana Wulandari <tiez_2289@yahoo.com>
>
> **
>
> Mr. Kid,
>
> salam kenal Pak Kid..
> subhanallah rumusnya topcer,
> 1 yg saya kurang paham, mohon penjelasan tentang "(C$4:C$12<>"cuti")"
>
> terimakasih banyak..
>
> ----- Forwarded Message -----
> *From:* Mr. Kid <mr.nmkid@gmail.com>
> *To:* belajar-excel@yahoogroups.com
> *Sent:* Sunday, December 2, 2012 3:19 PM
> *Subject:* Re: [belajar-excel] mengganti di lain sheet
>
>
> Hai Wulan,
>
> mbak Wulan bisa menggunakan fungsi CountIFs (xl2007 ke atas) atau
> SumProduct yang bisa untuk semua versi dan ndak perlu sebagai array formula.
> om array formula di cell C23 pengen salim sama mbak Wulan, mungkin
> mengajak kenalan. Katanya tak kenal maka tak sayang.
> bagini caranya kenalan :
> 1. tulis di C23 formula berikut tapi jangan sekali-kali tekan Enter :
> =SUM(($B$4:$B$12=$B23)*(C$4:C$12<>"cuti"))
> 2. kemudian tekan 3 tombol ini bersamaan :
> CTRL SHIFT ENTER
>
> fyi.
> array formula akan banyak membantu dalam proses kalkulasi yang lebih
> kompleks. Sebaiknya setiap Excel User bisa berkenalan dengan om array
> formula yang guanteng.
>
> Kalau masih jual mahal gak mau kenalan sama om array formula, ya sudah.
> Coba salah satu dari formula dibawah ini (tetap di cell C23) :
> formula 1 : (semua versi Excel)
> =SUMPRODUCT(($B$4:$B$12=$B23)*(C$4:C$12<>"cuti"))
> formula 2 : (Excel 2007 ke atas)
> =COUNTIFS($B$4:$B$12,$B23,C$4:C$12,"<>cuti")
>
>
> Semua formula di atas di copy ke kolom lainnya dan baris lainnya dalam
> sebuah blok minggu.
> Untuk blok minggu lainnya :
> >> copy cell C23 ke blok minggu baru
> >> ubah rujukan ke tabel data agar sesuai dengan data minggu tersebut
> >> akhiri dengan CTRL SHIFT ENTER jika array formula atau cukup dengan
> ENTER jika bukan array formula
>
> Wassalam,
> Kid.
>
>
>
> 2012/12/2 Titis Ardiyana Wulandari <tiez_2289@yahoo.com>
>
> **
>
> dear All,
>
> saya mengalami kesulitan saat mengganti posisi tempat orang seperti contoh
> di attach files.
> di cell j9 & k9 wawan cuti, tapi karena minggu ke 2 tsb ada perubahan
> tempat posisi kerja, mengakibatkan di bagian perhitungan ada kesalahan
> hitung seperti cell j28 & k28, seharusnya nilai 0 untuk wawan bukan doni.
> mohon pencerahannya menggunakan rumus apa supaya nilai2 perhitungan tetap
> sesuai list orangnya biarpun di jadwal orangnya berpindah2 tempat?
>
> terimakasih banyak atas bantuannya.
> semoga Allah membalas dengan lebih..
>
>
>
>
>
>
>
>
>

Mon Dec 3, 2012 11:09 am (PST) . Posted by:

"ngademin Thohari" ngademinth

Be-Exceller, mr. kid

Mohon diverifikasi pekerjaan saya, saya coba program tidak berjalan dengan semestinya,

Option Explicit

Private Sub UserForm_Initialize()
   Dim ctr As Control
   For Each ctr In Me.Controls
      If Left(ctr.Name, 2) = "Cb" Then ctr.BackColor = RGB(240, 255, 255)
      If Left(ctr.Name, 2) = "Tb" Then ctr.BackColor = RGB(255, 255, 225)
   Next ctr
End Sub

Private Sub UserForm_Activate()
      'CbType.List = Array("Model1", "Model2", "Model3", "Model4", "Model5", "Model6", "Model7", "Model8")
   'CbType.ListIndex = 0
   CbCust.List = Array("PTIEI", "PTITR", "PTFLUI", "PTSKI", "PTLGIT")
   CbCust.ListIndex = 0
      CbOpr.List = Array("Purwati", "Ria", "Evi Hudi", "Sarwinah", "Tiwi", "Maurice")
   CbOpr.ListIndex = 0
      Cbqty.List = Array("0")
   Cbqty.ListIndex = 0
         'Cbloc.List = Array("78P1WP02-R01-", "78P1WP02-R02-", "78P1WP02-R03-", "78P1WP02-R04-", "78P1WP02-R05-", "78P1WP02-R06-", "78P1WP02-R07", "78P1WP02-R08", "78P1WP02-R09", "78P1WP02-R10", "78P1WP02-R11", "78P1WP02-R12", "78P1WP02-R13", "78P1WP02-R14", "78P1WP02-R15")
   'Cbloc.ListIndex = 0
        Cbcons.List = Array("Bali-1", "A14..", "Common")
   'Cbcons.ListIndex = 0

   'CbDate = Format(Now, "dd/mm/yyyy hh:mm:ss")
End Sub
Private Sub Cbqty_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
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
End Sub
Private Sub CmdInput_Click()
   Dim LastRow As Range, Respons
   Dim ctrl As Control
   Sheet3.Unprotect "Belajar-Excel"
   On Error Resume Next
   Set LastRow = Sheet3.Range("C10000").End(xlUp)
   For Each ctrl In Me.Controls
      If TypeName(ctrl) = "TextBox" Then
      If Left(ctrl.Name, 2) = "Tb" And ctrl.Value = "" Then
         MsgBox ctrl.Name & "  belum diisi !!", 48, "Material Input Control"
         Exit Sub
      End If
      End If
   Next ctrl
                     '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
End If

   With LastRow
      .Cells(2, 1) = Tbloc.Value
      .Cells(2, 11) = Tbloc.Value
      .Cells(2, 2) = Cbcons
      .Cells(2, 3) = CbCust
      '.Cells(2, 4) = CbDate
      .Cells(2, 5).Value = vNilai
      .Cells(2, 6) = TbLot.Value
      .Cells(2, 7) = TbPartname.Value
      .Cells(2, 8) = Cbqty.Value
      .Cells(2, 9) = CbOpr
   End With
   Sheet3.Range("A1").Select
   Respons = MsgBox("Data masuk dengan sukses, Lanjutkan Input ?", 4, "Material Input Success")
   If Respons = vbNo Then Unload Me
   
   For Each ctrl In Me.Controls
      If Left(ctrl.Name, 2) = "Tb" Then ctrl = ""
   Next ctrl
   
   Sheet3.Protect "Belajar-Excel"
   'set sortcolumns -> siapa tahu pernah dipakai sort rows
Sheet3.Range("c1").CurrentRegion.Sort
Sheet3.Range ("g1"), xlAscending, Header:=xlYes, Orientation:=xlSortColumns

End Sub

Private Sub TbPartno_Exit(ByVal Cancel As MSForms.ReturnBoolean)
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
           End If
      Next rng
      sRackByPart = Mid$(sRackByPart, 2)
   End If

   If LenB(sRackByPart) <> 0 Then
          TextBox1.Text = sRackByPart
   Else
          TextBox1.Text = "Tidak ada rack yang dipakai part " & sPart
   End If
   TextBox1.Locked = True
   .Parent.AutoFilterMode = False
End With
End Sub
Private Sub Tbloc_Exit(ByVal Cancel As MSForms.ReturnBoolean)
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
   End If
   TextBox1.Locked = True
End With
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   If CloseMode = vbFormControlMenu Then Cancel = True
End Sub

Private Sub CmdCancel_Click()
   Unload Me
End Sub

terima kasih

Dwi amin

________________________________
Dari: Mr. Kid <mr.nmkid@gmail.com>
Kepada: belajar-excel@yahoogroups.com
Dikirim: Minggu, 2 Desember 2012 18:15
Judul: Re: [belajar-excel] tracebility part gudang


 
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 <ngademinth@yahoo.co.id>


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

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