15 Messages
Digest #3665
2a
Re: [belajar excel] mohon bantuan mengindari input yang sama dari fo by "Mr. Kid" nmkid.family@ymail.com
Messages
Sun Nov 29, 2015 4:53 am (PST) . Posted by:
"Toby kenzo" tobykenzo
Hai Edo,
Apakah transformCodenya sudah di buatkan ke dalam suatu Module..?
Sent from Yahoo Mail on Android
Apakah transformCodenya sudah di buatkan ke dalam suatu Module..?
Sent from Yahoo Mail on Android
Sun Nov 29, 2015 5:35 am (PST) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
Wa'alaikumussalam wr wb
Hai Edo,
Prosedur TransformCode nya sudah dibuat ya. Sebaiknya diletakkan di general
module agar bisa digunakan oleh prosedur lainnya, termasuk
prosedur-prosedur events milik sheet manapun dan sebagainya.
Kemudian, cara memanggil prosedur nya diperbaiki. Kalau sempet,
jalan-jalanlah ke blog milis tentang hal ini disini
<http://b-excel.blogspot.co.id/2013/07/belajarvba-005-procedure-seri-1.html>,
yang ada bagian tentang cara memanggil prosedur lain dari sebuah prosedur.
Pada kasus Anda,
berikut ini yang Anda buat :
Cells(lRow, 3).Value = TransformCode.Cells(lRow, 3).Offset(0,
-1).Resize(1, 2)
ini yang ada diimil saya tempo lalu :
transformcode cells(lrow,3).offset(0,-1).resize(1,2)
dan saya rasa jelas bahwa :
> tapi, ganti *bagian yang merah *dengan
menunjukkan bahwa bagian yang berbunyi :
cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value
'isi kolom D
if err.number=0 then 'kolom D terisi dengan baik ?
cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value
'isi kolom B
endif 'selesai cek kolom D terisi dengan baik
harus diganti alias HAPUS bagian merah tersebut dan tulis baris kode
berikut :
transformcode cells(lrow,3).offset(0,-1).resize(1,2)
Ada baiknya jika tidak langsung terfokus kepada baris-baris kode nya saja,
tetapi runut dari awal imil sampai akhir imil disempatkan ditelaah dengan
tartil.
Wassalamu'alaikum wr wb
Kid
2015-11-29 8:59 GMT+07:00 Edo Hanggoro Edo_Hanggoro@yahoo.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Dear Mr. Kid,
> Assalamuallaikum Wr.Wb.
>
> Terima kasih banyak atas bantuanya, tetapi saya masih mendapatkan
> kesulitan dalam melakukan proses pemanggilan transform code-nya dan selalu
> error.
>
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim rng As Range, lRow As Long
> If Not Intersect(Target, Range("C:C")) Is Nothing Then 'cek yang
> berubah beririsan dengan kolom C
> Application.EnableEvents = False 'cegah Excel untuk responsif
> terhadap perilaku
> On Error Resume Next 'lewati error yang terjadi
> For Each rng In Intersect(Target, Range("C:C")) 'di setiap cells
> yang berubah di kolom C
> lRow = rng.Row 'simpan baris
> Cells(lRow, 3).Value = TransformCode.Cells(lRow,
> 3).Offset(0, -1).Resize(1, 2)
> Next rng 'ke range yang berubah berikutnya
> On Error GoTo 0 'kembalikan setting trap error ke
> default
> Application.EnableEvents = True 'excel boleh responsif lagi
> End If 'selesai cek
> End Sub
>
> Saya dapatkan error di bagian yang merah tersebut. Kira-kira kesalahannya
> ada dimana ya?
> Mohon bantuannya sekali lagi.
>
> Terima kasih
>
> Edo
>
>
>
>
> On Saturday, November 28, 2015 10:00 PM, "'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
>
>
>
> Wa'alaikumussalam wr wb
>
> Hai Edo,
>
> *** sesuaikan dengan keadaan setempat jika berbeda dengan preview file
> lampiran milik Pak Edo
> Pada sebuah general module, buat prosedur berikut : (misal diberi nama
> TransformCode)
> public sub TransformCode( rngProc as range )
> dim lChar as long, sDate as string, sCode as string
>
> with rngproc 'kerja di range inputan rngProc
> sdate=.cells(1).value2 'simpan nilai asli tanggal inputan
> ke sdate
> scode=.cells(2).value2 'simpan nilai asli kode inputan ke
> scode
> lchar=1 'karakter ke-1 -> mulainya
> proses loop
>
> 'dapatkan angka pertama (max di karakter ke-6 alias ada ruang
> max 5 karakter untuk header kode)
> do until isnumeric( mid( scode , lchar , 1 ) ) or lchar>6
> 'cek dah nemu angka belum atau karakter diproses dah lebih dari 6
> lchar=lchar+1 'pindah ke karakter berikutnya
> loop 'ke proses loop dengan nilai karakter yang baru
>
> 'tulis ke cells ke-2 dari inputan (posisi cell kode)
> 'diawali petik satu ( ' )
> 'disambung hasil vlookup untuk ambil dari kolom H tabel
> yang atas (kode barang)
> 'disambung format tahun YY didahului delimiter dash ( - )
> 'disambung hasil vlookup untuk ambil dari kolom i tabel
> yang bawah (kode tanggal)
> 'disambung format kode digit dengan struktur format hasil
> vlookup untuk ambil dari kolom i tabel yang atas (kode digit)
> 'didahului delimiter dash ( - )
> .cells(2).value= "'" _
> & evaluate( "=vlookup(""" & left(scode,lchar-1) &
> """,g3:h8,2,0)" ) _
> & format( sdate , "-YY" ) _
> & evaluate( "=vlookup(" & sdate & ", h12:i18 , 2 , 0
> )" ) _
> & format( mid( scode , lchar , 9 ) , "-" & evaluate(
> "=vlookup(""" & left(scode,lchar-1) & """,g3:i8,3,0)" ) )
> end with
> end sub
>
> Kemudian, pada event change milik worksheet terkait, diisi baris kode
> seperti di-imil yang lalu, yang bunyinya begini :
> dim rng as range,lRow as long
> if not intersect( target,range("c:c") ) is nothing then 'cek yang
> berubah beririsan dengan kolom C
> application.enableevents=false 'cegah Excel untuk responsif
> terhadap perilaku
> on error resume next 'lewati error yang terjadi
> for each rng in intersect( target,range("c:c") ) 'di setiap
> cells yang berubah di kolom C
> lrow=rng.row 'simpan baris
> cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value
> 'isi kolom D
> if err.number=0 then 'kolom D terisi dengan baik ?
> cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value
> 'isi kolom B
> endif 'selesai cek kolom D terisi dengan baik
> err.clear 'hapus error yang terjadi
> next rng 'ke range yang berubah berikutnya
> on error goto 0 'kembalikan setting trap error ke
> default
> application.enableevents=true 'excel boleh responsif lagi
> endif 'selesai cek
>
> tapi, ganti *bagian yang merah *dengan baris kode memanggil prosedur
> TransformCode dengan menyertakan range yang diproses, yaitu range tanggal
> inputan dan kode inputan (1 baris x 2 kolom) seperti bergini :
> transformcode cells(lrow,3).offset(0,-1).resize(1,2)
> yang bahasa manusianya :
> "bi pibi, suruh anak buahmu si transformcode kerja ye. bi, kamu bawa
> range yang bisa kamu ambil sendiri ngikutin arahanku ini,
> 1. kamu ke kolom C lalu jalan sampe baris yang kuproses ini (sambil
> nyerahin nota ke pibi yang isinya nomer baris Excel)
> [ cells(lrow,3) ] (lrow adalah lembaran nota yang diserahkan)
> 2. kalo dah nemu, kamu pindah ke kolom sebelumnya (berarti geser ke kiri
> 1 kolom) tapi tetep dibaris itu ya
> [ .offset( 0 , -1 ) ] (kalau kolom, ke kanan itu ples, dan ke kiri
> itu min)
> 3. terus, karungin tuh range, mulai tempatmu itu, sampai kamu dapetin 2
> kolom. Tapi cuman sebaris tempatmu doink ya
> [ .resize( 1 , 2 ) ]
> nah.. kalo dah penuh tuh karung, segera ke tempatnya si transformcode.
> Dia bakal minta syarat tuh kalo disuruh.
> Kalo dia minta syarat, kasihin tuh karung. Kamu harus nungguin dia sampai
> selesai ya. Kalo dah selesai, lapor kesini."
>
> Catatan :
> a. kode barang baru diset untuk maksimal diawali oleh 5 karakter bukan
> angka. Silakan dikembangkan dan disesuaikan sendiri.
> b. pencegahan kesalahan input tanggal (tidak bertipe datetime dan tidak
> bisa dijadikan datetime yang benar) ditambahkan sendiri.
> c. inputan tanggal (bertipe datetime) atau kode yang tidak ada dalam
> daftar, silakan dicegah atau diberi proses sendiri.
> d. pengubahan letak daftar-daftar, penambahan atau pengurangan isi dalam
> daftar, dan kesesuaian tipe data dalam daftar, silakan dilakukan
> penyesuaian di dalam baris-baris kode di atas secara mandiri.
> e. proses yang dipicu bukan oleh pengubahan nilai kolom C atau beserta
> kolom lainnya, silakan disesuaikan sendiri baris kodenya.
> f. pengembangkan dan penyesuaian dengan permasalahan yang mirip tetapi
> tidak sama datanya atau strukturnya, silakan dilakukan secara setahap demi
> setahap secara mandiri.
>
> Moga-moga gak error ya..
> Kalo error, silakan dilacak dan dicari solusinya per penyebab error.
>
>
> btw,
> kenapa kasusnya selalu mengganti nilai inputan user ? kok gak ditulis di
> kolom lain saja ? bukankah malah akan ada informasi dan bukti bahwa user
> pernah mengisi kurang tepat (salah ketik atau seklian struktur isiannya
> keliru) kalau hasil diletakkan di kolom lain.
> Dan juga, bisa tanpa VBA.
> Moga-moga bukan karena pengen tampak keren dengan begitu di-input langsung
> ganti... Soale, dikuatirkan malah nanti jadi masalah...
> Kalo jadi menimbulkan masalah, jadi gak keren lagi dah...
> Moga-moga...
>
> Wa'alaikumussalam wr wb
> Kid
>
>
>
>
> 2015-11-28 14:49 GMT+07:00 Edo_Hanggoro@yahoo.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
> Assalamualaikum Wr.Wb.
>
> Dear All,
> Saya sedang mencoba untuk membuat kode VBA dan mohon bantuannya untuk
> dapat membuat kode VBA untuk format cell secara otomatis dimana jika
> seandainya pada kolom Tanggal terdapat tanggal 1 jan 2016 dan pada kolom
> Nomer Kode diketikan "SD1", maka akan secara otomatis menjadi
> "SD002-1601-0001" (SD002 = Kode Barang, 16 =Kode Tahun , 02=Kode Tanggal,
> 0001 =Kode Digit).
>
> Dan untuk lebih jelasnya saya lampirkan filenya.
> Terima Kasih sebelumnya.
>
> Salam
>
> Edo
>
>
>
>
>
>
Hai Edo,
Prosedur TransformCode nya sudah dibuat ya. Sebaiknya diletakkan di general
module agar bisa digunakan oleh prosedur lainnya, termasuk
prosedur-prosedur events milik sheet manapun dan sebagainya.
Kemudian, cara memanggil prosedur nya diperbaiki. Kalau sempet,
jalan-jalanlah ke blog milis tentang hal ini disini
<http://b-excel.blogspot.co.id/2013/07/belajarvba-005-procedure-seri-1.html>,
yang ada bagian tentang cara memanggil prosedur lain dari sebuah prosedur.
Pada kasus Anda,
berikut ini yang Anda buat :
Cells(lRow, 3).Value = TransformCode.Cells(lRow, 3).Offset(0,
-1).Resize(1, 2)
ini yang ada diimil saya tempo lalu :
transformcode cells(lrow,3).offset(0,-1).resize(1,2)
dan saya rasa jelas bahwa :
> tapi, ganti *bagian yang merah *dengan
menunjukkan bahwa bagian yang berbunyi :
cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value
'isi kolom D
if err.number=0 then 'kolom D terisi dengan baik ?
cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value
'isi kolom B
endif 'selesai cek kolom D terisi dengan baik
harus diganti alias HAPUS bagian merah tersebut dan tulis baris kode
berikut :
transformcode cells(lrow,3).offset(0,-1).resize(1,2)
Ada baiknya jika tidak langsung terfokus kepada baris-baris kode nya saja,
tetapi runut dari awal imil sampai akhir imil disempatkan ditelaah dengan
tartil.
Wassalamu'alaikum wr wb
Kid
2015-11-29 8:59 GMT+07:00 Edo Hanggoro Edo_Hanggoro@yahoo.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Dear Mr. Kid,
> Assalamuallaikum Wr.Wb.
>
> Terima kasih banyak atas bantuanya, tetapi saya masih mendapatkan
> kesulitan dalam melakukan proses pemanggilan transform code-nya dan selalu
> error.
>
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim rng As Range, lRow As Long
> If Not Intersect(Target, Range("C:C")) Is Nothing Then 'cek yang
> berubah beririsan dengan kolom C
> Application.EnableEvents = False 'cegah Excel untuk responsif
> terhadap perilaku
> On Error Resume Next 'lewati error yang terjadi
> For Each rng In Intersect(Target, Range("C:C")) 'di setiap cells
> yang berubah di kolom C
> lRow = rng.Row 'simpan baris
> Cells(lRow, 3).Value = TransformCode.Cells(lRow,
> 3).Offset(0, -1).Resize(1, 2)
> Next rng 'ke range yang berubah berikutnya
> On Error GoTo 0 'kembalikan setting trap error ke
> default
> Application.EnableEvents = True 'excel boleh responsif lagi
> End If 'selesai cek
> End Sub
>
> Saya dapatkan error di bagian yang merah tersebut. Kira-kira kesalahannya
> ada dimana ya?
> Mohon bantuannya sekali lagi.
>
> Terima kasih
>
> Edo
>
>
>
>
> On Saturday, November 28, 2015 10:00 PM, "'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
>
>
>
> Wa'alaikumussalam wr wb
>
> Hai Edo,
>
> *** sesuaikan dengan keadaan setempat jika berbeda dengan preview file
> lampiran milik Pak Edo
> Pada sebuah general module, buat prosedur berikut : (misal diberi nama
> TransformCode)
> public sub TransformCode( rngProc as range )
> dim lChar as long, sDate as string, sCode as string
>
> with rngproc 'kerja di range inputan rngProc
> sdate=.cells(1).value2 'simpan nilai asli tanggal inputan
> ke sdate
> scode=.cells(2).value2 'simpan nilai asli kode inputan ke
> scode
> lchar=1 'karakter ke-1 -> mulainya
> proses loop
>
> 'dapatkan angka pertama (max di karakter ke-6 alias ada ruang
> max 5 karakter untuk header kode)
> do until isnumeric( mid( scode , lchar , 1 ) ) or lchar>6
> 'cek dah nemu angka belum atau karakter diproses dah lebih dari 6
> lchar=lchar+1 'pindah ke karakter berikutnya
> loop 'ke proses loop dengan nilai karakter yang baru
>
> 'tulis ke cells ke-2 dari inputan (posisi cell kode)
> 'diawali petik satu ( ' )
> 'disambung hasil vlookup untuk ambil dari kolom H tabel
> yang atas (kode barang)
> 'disambung format tahun YY didahului delimiter dash ( - )
> 'disambung hasil vlookup untuk ambil dari kolom i tabel
> yang bawah (kode tanggal)
> 'disambung format kode digit dengan struktur format hasil
> vlookup untuk ambil dari kolom i tabel yang atas (kode digit)
> 'didahului delimiter dash ( - )
> .cells(2).value= "'" _
> & evaluate( "=vlookup(""" & left(scode,lchar-1) &
> """,g3:h8,2,0)" ) _
> & format( sdate , "-YY" ) _
> & evaluate( "=vlookup(" & sdate & ", h12:i18 , 2 , 0
> )" ) _
> & format( mid( scode , lchar , 9 ) , "-" & evaluate(
> "=vlookup(""" & left(scode,lchar-1) & """,g3:i8,3,0)" ) )
> end with
> end sub
>
> Kemudian, pada event change milik worksheet terkait, diisi baris kode
> seperti di-imil yang lalu, yang bunyinya begini :
> dim rng as range,lRow as long
> if not intersect( target,range("c:c") ) is nothing then 'cek yang
> berubah beririsan dengan kolom C
> application.enableevents=false 'cegah Excel untuk responsif
> terhadap perilaku
> on error resume next 'lewati error yang terjadi
> for each rng in intersect( target,range("c:c") ) 'di setiap
> cells yang berubah di kolom C
> lrow=rng.row 'simpan baris
> cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value
> 'isi kolom D
> if err.number=0 then 'kolom D terisi dengan baik ?
> cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value
> 'isi kolom B
> endif 'selesai cek kolom D terisi dengan baik
> err.clear 'hapus error yang terjadi
> next rng 'ke range yang berubah berikutnya
> on error goto 0 'kembalikan setting trap error ke
> default
> application.enableevents=true 'excel boleh responsif lagi
> endif 'selesai cek
>
> tapi, ganti *bagian yang merah *dengan baris kode memanggil prosedur
> TransformCode dengan menyertakan range yang diproses, yaitu range tanggal
> inputan dan kode inputan (1 baris x 2 kolom) seperti bergini :
> transformcode cells(lrow,3).offset(0,-1).resize(1,2)
> yang bahasa manusianya :
> "bi pibi, suruh anak buahmu si transformcode kerja ye. bi, kamu bawa
> range yang bisa kamu ambil sendiri ngikutin arahanku ini,
> 1. kamu ke kolom C lalu jalan sampe baris yang kuproses ini (sambil
> nyerahin nota ke pibi yang isinya nomer baris Excel)
> [ cells(lrow,3) ] (lrow adalah lembaran nota yang diserahkan)
> 2. kalo dah nemu, kamu pindah ke kolom sebelumnya (berarti geser ke kiri
> 1 kolom) tapi tetep dibaris itu ya
> [ .offset( 0 , -1 ) ] (kalau kolom, ke kanan itu ples, dan ke kiri
> itu min)
> 3. terus, karungin tuh range, mulai tempatmu itu, sampai kamu dapetin 2
> kolom. Tapi cuman sebaris tempatmu doink ya
> [ .resize( 1 , 2 ) ]
> nah.. kalo dah penuh tuh karung, segera ke tempatnya si transformcode.
> Dia bakal minta syarat tuh kalo disuruh.
> Kalo dia minta syarat, kasihin tuh karung. Kamu harus nungguin dia sampai
> selesai ya. Kalo dah selesai, lapor kesini."
>
> Catatan :
> a. kode barang baru diset untuk maksimal diawali oleh 5 karakter bukan
> angka. Silakan dikembangkan dan disesuaikan sendiri.
> b. pencegahan kesalahan input tanggal (tidak bertipe datetime dan tidak
> bisa dijadikan datetime yang benar) ditambahkan sendiri.
> c. inputan tanggal (bertipe datetime) atau kode yang tidak ada dalam
> daftar, silakan dicegah atau diberi proses sendiri.
> d. pengubahan letak daftar-daftar, penambahan atau pengurangan isi dalam
> daftar, dan kesesuaian tipe data dalam daftar, silakan dilakukan
> penyesuaian di dalam baris-baris kode di atas secara mandiri.
> e. proses yang dipicu bukan oleh pengubahan nilai kolom C atau beserta
> kolom lainnya, silakan disesuaikan sendiri baris kodenya.
> f. pengembangkan dan penyesuaian dengan permasalahan yang mirip tetapi
> tidak sama datanya atau strukturnya, silakan dilakukan secara setahap demi
> setahap secara mandiri.
>
> Moga-moga gak error ya..
> Kalo error, silakan dilacak dan dicari solusinya per penyebab error.
>
>
> btw,
> kenapa kasusnya selalu mengganti nilai inputan user ? kok gak ditulis di
> kolom lain saja ? bukankah malah akan ada informasi dan bukti bahwa user
> pernah mengisi kurang tepat (salah ketik atau seklian struktur isiannya
> keliru) kalau hasil diletakkan di kolom lain.
> Dan juga, bisa tanpa VBA.
> Moga-moga bukan karena pengen tampak keren dengan begitu di-input langsung
> ganti... Soale, dikuatirkan malah nanti jadi masalah...
> Kalo jadi menimbulkan masalah, jadi gak keren lagi dah...
> Moga-moga...
>
> Wa'alaikumussalam wr wb
> Kid
>
>
>
>
> 2015-11-28 14:49 GMT+07:00 Edo_Hanggoro@yahoo.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
> Assalamualaikum Wr.Wb.
>
> Dear All,
> Saya sedang mencoba untuk membuat kode VBA dan mohon bantuannya untuk
> dapat membuat kode VBA untuk format cell secara otomatis dimana jika
> seandainya pada kolom Tanggal terdapat tanggal 1 jan 2016 dan pada kolom
> Nomer Kode diketikan "SD1"
> "SD002-
> 0001 =Kode Digit).
>
> Dan untuk lebih jelasnya saya lampirkan filenya.
> Terima Kasih sebelumnya.
>
> Salam
>
> Edo
>
>
>
>
>
>
Sun Nov 29, 2015 9:44 pm (PST) . Posted by:
"Edo Hanggoro" edo_hanggoro
Dear All,
Terima kasih atas bantuannya dan saya sudah coba dan tidak ada masalah.Ada beberapa hal yang ingin saya ketahui yaitu :
- Di awal format terdapat tanda petik satu ('),apa fungsi dari tanda tersebut?
- Saya mencoba untuk menghilangkan tanda petik satu (') dengan menghapus bagian " ' " tetapi mengapa hasilnya masih tetap ada tanda (').
- .cells(2).value= "'" _
& evaluate( "=vlookup(""" & left(scode,lchar-1) & """,g3:h8,2,0)" ) _
& format( sdate , "-YY" ) _
& evaluate( "=vlookup(" & sdate & ", h12:i18 , 2 , 0 )" ) _
& format( mid( scode , lchar , 9 ) , "-" & evaluate( "=vlookup(""" & left(scode,lchar-1) & """,g3:i8,3,0)" ) ) end with
- Jika seandainya untuk table array dari fungsi vlookup tersebut akan diambil dari worksheet lain (misal dari Sheet 2) bagaimana penulisannya di kodenya?
Terima kasihSalam
Edo
On Sunday, November 29, 2015 8:35 PM, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
Wa'alaikumussalam wr wb
Hai Edo,
Prosedur TransformCode nya sudah dibuat ya. Sebaiknya diletakkan di general module agar bisa digunakan oleh prosedur lainnya, termasuk prosedur-prosedur events milik sheet manapun dan sebagainya.
Kemudian, cara memanggil prosedur nya diperbaiki. Kalau sempet, jalan-jalanlah ke blog milis tentang hal ini disini, yang ada bagian tentang cara memanggil prosedur lain dari sebuah prosedur.
Pada kasus Anda,
berikut ini yang Anda buat :
Cells(lRow, 3).Value = TransformCode.Cells(lRow, 3).Offset(0, -1).Resize(1, 2)
ini yang ada diimil saya tempo lalu :
transformcode cells(lrow,3).offset(0,-1).resize(1,2)
dan saya rasa jelas bahwa :
tapi, ganti bagian yang merah dengan
menunjukkan bahwa bagian yang berbunyi :
cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value 'isi kolom D
if err.number=0 then 'kolom D terisi dengan baik ?
cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value 'isi kolom B
endif 'selesai cek kolom D terisi dengan baik
harus diganti alias HAPUS bagian merah tersebut dan tulis baris kode berikut :
transformcode cells(lrow,3).offset(0,-1).resize(1,2)
Ada baiknya jika tidak langsung terfokus kepada baris-baris kode nya saja, tetapi runut dari awal imil sampai akhir imil disempatkan ditelaah dengan tartil.
Wassalamu'alaikum wr wb
Kid
2015-11-29 8:59 GMT+07:00 Edo Hanggoro Edo_Hanggoro@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Dear Mr. Kid,Assalamuallaikum Wr.Wb.
Terima kasih banyak atas bantuanya, tetapi saya masih mendapatkan kesulitan dalam melakukan proses pemanggilan transform code-nya dan selalu error.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, lRow As Long
If Not Intersect(Target, Range("C:C")) Is Nothing Then 'cek yang berubah beririsan dengan kolom C
Application.EnableEvents = False 'cegah Excel untuk responsif terhadap perilaku
On Error Resume Next 'lewati error yang terjadi
For Each rng In Intersect(Target, Range("C:C")) 'di setiap cells yang berubah di kolom C
lRow = rng.Row 'simpan baris
Cells(lRow, 3).Value = TransformCode.Cells(lRow, 3).Offset(0, -1).Resize(1, 2)
Next rng 'ke range yang berubah berikutnya
On Error GoTo 0 'kembalikan setting trap error ke default
Application.EnableEvents = True 'excel boleh responsif lagi
End If 'selesai cek
End Sub
Saya dapatkan error di bagian yang merah tersebut. Kira-kira kesalahannya ada dimana ya?
Mohon bantuannya sekali lagi.
Terima kasih
Edo
On Saturday, November 28, 2015 10:00 PM, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
Wa'alaikumussalam wr wb
Hai Edo,
*** sesuaikan dengan keadaan setempat jika berbeda dengan preview file lampiran milik Pak Edo
Pada sebuah general module, buat prosedur berikut : (misal diberi nama TransformCode)
public sub TransformCode( rngProc as range )
dim lChar as long, sDate as string, sCode as string
with rngproc 'kerja di range inputan rngProc
sdate=.cells(1).value2 'simpan nilai asli tanggal inputan ke sdate
scode=.cells(2).value2 'simpan nilai asli kode inputan ke scode
lchar=1 'karakter ke-1 -> mulainya proses loop
'dapatkan angka pertama (max di karakter ke-6 alias ada ruang max 5 karakter untuk header kode)
do until isnumeric( mid( scode , lchar , 1 ) ) or lchar>6 'cek dah nemu angka belum atau karakter diproses dah lebih dari 6
lchar=lchar+1 'pindah ke karakter berikutnya
loop 'ke proses loop dengan nilai karakter yang baru
'tulis ke cells ke-2 dari inputan (posisi cell kode)
'diawali petik satu ( ' )
'disambung hasil vlookup untuk ambil dari kolom H tabel yang atas (kode barang)
'disambung format tahun YY didahului delimiter dash ( - )
'disambung hasil vlookup untuk ambil dari kolom i tabel yang bawah (kode tanggal)
'disambung format kode digit dengan struktur format hasil vlookup untuk ambil dari kolom i tabel yang atas (kode digit)
'didahului delimiter dash ( - )
.cells(2).value= "'" _
& evaluate( "=vlookup(""" & left(scode,lchar-1) & """,g3:h8,2,0)" ) _
& format( sdate , "-YY" ) _
& evaluate( "=vlookup(" & sdate & ", h12:i18 , 2 , 0 )" ) _
& format( mid( scode , lchar , 9 ) , "-" & evaluate( "=vlookup(""" & left(scode,lchar-1) & """,g3:i8,3,0)" ) ) end with
end sub
Kemudian, pada event change milik worksheet terkait, diisi baris kode seperti di-imil yang lalu, yang bunyinya begini :
dim rng as range,lRow as long
if not intersect( target,range("c:c") ) is nothing then 'cek yang berubah beririsan dengan kolom C
application.enableevents=false 'cegah Excel untuk responsif terhadap perilaku
on error resume next 'lewati error yang terjadi
for each rng in intersect( target,range("c:c") ) 'di setiap cells yang berubah di kolom C
lrow=rng.row 'simpan baris
cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value 'isi kolom D
if err.number=0 then 'kolom D terisi dengan baik ?
cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value 'isi kolom B
endif 'selesai cek kolom D terisi dengan baik
err.clear 'hapus error yang terjadi
next rng 'ke range yang berubah berikutnya
on error goto 0 'kembalikan setting trap error ke default
application.enableevents=true 'excel boleh responsif lagi
endif 'selesai cek
tapi, ganti bagian yang merah dengan baris kode memanggil prosedur TransformCode dengan menyertakan range yang diproses, yaitu range tanggal inputan dan kode inputan (1 baris x 2 kolom) seperti bergini :
transformcode cells(lrow,3).offset(0,-1).resize(1,2)
yang bahasa manusianya :
"bi pibi, suruh anak buahmu si transformcode kerja ye. bi, kamu bawa range yang bisa kamu ambil sendiri ngikutin arahanku ini,
1. kamu ke kolom C lalu jalan sampe baris yang kuproses ini (sambil nyerahin nota ke pibi yang isinya nomer baris Excel)
[ cells(lrow,3) ] (lrow adalah lembaran nota yang diserahkan)
2. kalo dah nemu, kamu pindah ke kolom sebelumnya (berarti geser ke kiri 1 kolom) tapi tetep dibaris itu ya
[ .offset( 0 , -1 ) ] (kalau kolom, ke kanan itu ples, dan ke kiri itu min)
3. terus, karungin tuh range, mulai tempatmu itu, sampai kamu dapetin 2 kolom. Tapi cuman sebaris tempatmu doink ya
[ .resize( 1 , 2 ) ]
nah.. kalo dah penuh tuh karung, segera ke tempatnya si transformcode. Dia bakal minta syarat tuh kalo disuruh.
Kalo dia minta syarat, kasihin tuh karung. Kamu harus nungguin dia sampai selesai ya. Kalo dah selesai, lapor kesini."
Catatan :
a. kode barang baru diset untuk maksimal diawali oleh 5 karakter bukan angka. Silakan dikembangkan dan disesuaikan sendiri.
b. pencegahan kesalahan input tanggal (tidak bertipe datetime dan tidak bisa dijadikan datetime yang benar) ditambahkan sendiri.
c. inputan tanggal (bertipe datetime) atau kode yang tidak ada dalam daftar, silakan dicegah atau diberi proses sendiri.
d. pengubahan letak daftar-daftar, penambahan atau pengurangan isi dalam daftar, dan kesesuaian tipe data dalam daftar, silakan dilakukan penyesuaian di dalam baris-baris kode di atas secara mandiri.
e. proses yang dipicu bukan oleh pengubahan nilai kolom C atau beserta kolom lainnya, silakan disesuaikan sendiri baris kodenya.
f. pengembangkan dan penyesuaian dengan permasalahan yang mirip tetapi tidak sama datanya atau strukturnya, silakan dilakukan secara setahap demi setahap secara mandiri.
Moga-moga gak error ya..
Kalo error, silakan dilacak dan dicari solusinya per penyebab error.
btw,
kenapa kasusnya selalu mengganti nilai inputan user ? kok gak ditulis di kolom lain saja ? bukankah malah akan ada informasi dan bukti bahwa user pernah mengisi kurang tepat (salah ketik atau seklian struktur isiannya keliru) kalau hasil diletakkan di kolom lain.
Dan juga, bisa tanpa VBA.
Moga-moga bukan karena pengen tampak keren dengan begitu di-input langsung ganti... Soale, dikuatirkan malah nanti jadi masalah...
Kalo jadi menimbulkan masalah, jadi gak keren lagi dah...
Moga-moga...
Wa'alaikumussalam wr wb
Kid
2015-11-28 14:49 GMT+07:00 Edo_Hanggoro@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Assalamualaikum Wr.Wb.
Dear All,Saya sedang mencoba untuk membuat kodeVBA dan mohon bantuannya untuk dapat membuat kode VBA untuk formatcell secara otomatis dimana jika seandainya pada kolom Tanggal terdapat tanggal1 jan 2016 dan pada kolom Nomer Kode diketikan "SD1", maka akansecara otomatis menjadi "SD002-1601-0001" (SD002 = Kode Barang, 16=Kode Tahun , 02=Kode Tanggal, 0001 =Kode Digit).
Dan untuk lebih jelasnya saya lampirkan filenya.
Terima Kasih sebelumnya.
Salam
Edo
#yiv4592230432 #yiv4592230432 -- #yiv4592230432ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv4592230432 #yiv4592230432ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv4592230432 #yiv4592230432ygrp-mkp #yiv4592230432hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv4592230432 #yiv4592230432ygrp-mkp #yiv4592230432ads {margin-bottom:10px;}#yiv4592230432 #yiv4592230432ygrp-mkp .yiv4592230432ad {padding:0 0;}#yiv4592230432 #yiv4592230432ygrp-mkp .yiv4592230432ad p {margin:0;}#yiv4592230432 #yiv4592230432ygrp-mkp .yiv4592230432ad a {color:#0000ff;text-decoration:none;}#yiv4592230432 #yiv4592230432ygrp-sponsor #yiv4592230432ygrp-lc {font-family:Arial;}#yiv4592230432 #yiv4592230432ygrp-sponsor #yiv4592230432ygrp-lc #yiv4592230432hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv4592230432 #yiv4592230432ygrp-sponsor #yiv4592230432ygrp-lc .yiv4592230432ad {margin-bottom:10px;padding:0 0;}#yiv4592230432 #yiv4592230432actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv4592230432 #yiv4592230432activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv4592230432 #yiv4592230432activity span {font-weight:700;}#yiv4592230432 #yiv4592230432activity span:first-child {text-transform:uppercase;}#yiv4592230432 #yiv4592230432activity span a {color:#5085b6;text-decoration:none;}#yiv4592230432 #yiv4592230432activity span span {color:#ff7900;}#yiv4592230432 #yiv4592230432activity span .yiv4592230432underline {text-decoration:underline;}#yiv4592230432 .yiv4592230432attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv4592230432 .yiv4592230432attach div a {text-decoration:none;}#yiv4592230432 .yiv4592230432attach img {border:none;padding-right:5px;}#yiv4592230432 .yiv4592230432attach label {display:block;margin-bottom:5px;}#yiv4592230432 .yiv4592230432attach label a {text-decoration:none;}#yiv4592230432 blockquote {margin:0 0 0 4px;}#yiv4592230432 .yiv4592230432bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv4592230432 .yiv4592230432bold a {text-decoration:none;}#yiv4592230432 dd.yiv4592230432last p a {font-family:Verdana;font-weight:700;}#yiv4592230432 dd.yiv4592230432last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv4592230432 dd.yiv4592230432last p span.yiv4592230432yshortcuts {margin-right:0;}#yiv4592230432 div.yiv4592230432attach-table div div a {text-decoration:none;}#yiv4592230432 div.yiv4592230432attach-table {width:400px;}#yiv4592230432 div.yiv4592230432file-title a, #yiv4592230432 div.yiv4592230432file-title a:active, #yiv4592230432 div.yiv4592230432file-title a:hover, #yiv4592230432 div.yiv4592230432file-title a:visited {text-decoration:none;}#yiv4592230432 div.yiv4592230432photo-title a, #yiv4592230432 div.yiv4592230432photo-title a:active, #yiv4592230432 div.yiv4592230432photo-title a:hover, #yiv4592230432 div.yiv4592230432photo-title a:visited {text-decoration:none;}#yiv4592230432 div#yiv4592230432ygrp-mlmsg #yiv4592230432ygrp-msg p a span.yiv4592230432yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv4592230432 .yiv4592230432green {color:#628c2a;}#yiv4592230432 .yiv4592230432MsoNormal {margin:0 0 0 0;}#yiv4592230432 o {font-size:0;}#yiv4592230432 #yiv4592230432photos div {float:left;width:72px;}#yiv4592230432 #yiv4592230432photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv4592230432 #yiv4592230432photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv4592230432 #yiv4592230432reco-category {font-size:77%;}#yiv4592230432 #yiv4592230432reco-desc {font-size:77%;}#yiv4592230432 .yiv4592230432replbq {margin:4px;}#yiv4592230432 #yiv4592230432ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv4592230432 #yiv4592230432ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv4592230432 #yiv4592230432ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv4592230432 #yiv4592230432ygrp-mlmsg select, #yiv4592230432 input, #yiv4592230432 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv4592230432 #yiv4592230432ygrp-mlmsg pre, #yiv4592230432 code {font:115% monospace;}#yiv4592230432 #yiv4592230432ygrp-mlmsg * {line-height:1.22em;}#yiv4592230432 #yiv4592230432ygrp-mlmsg #yiv4592230432logo {padding-bottom:10px;}#yiv4592230432 #yiv4592230432ygrp-msg p a {font-family:Verdana;}#yiv4592230432 #yiv4592230432ygrp-msg p#yiv4592230432attach-count span {color:#1E66AE;font-weight:700;}#yiv4592230432 #yiv4592230432ygrp-reco #yiv4592230432reco-head {color:#ff7900;font-weight:700;}#yiv4592230432 #yiv4592230432ygrp-reco {margin-bottom:20px;padding:0px;}#yiv4592230432 #yiv4592230432ygrp-sponsor #yiv4592230432ov li a {font-size:130%;text-decoration:none;}#yiv4592230432 #yiv4592230432ygrp-sponsor #yiv4592230432ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv4592230432 #yiv4592230432ygrp-sponsor #yiv4592230432ov ul {margin:0;padding:0 0 0 8px;}#yiv4592230432 #yiv4592230432ygrp-text {font-family:Georgia;}#yiv4592230432 #yiv4592230432ygrp-text p {margin:0 0 1em 0;}#yiv4592230432 #yiv4592230432ygrp-text tt {font-size:120%;}#yiv4592230432 #yiv4592230432ygrp-vital ul li:last-child {border-right:none !important;}#yiv4592230432
Terima kasih atas bantuannya dan saya sudah coba dan tidak ada masalah.Ada beberapa hal yang ingin saya ketahui yaitu :
- Di awal format terdapat tanda petik satu ('),apa fungsi dari tanda tersebut?
- Saya mencoba untuk menghilangkan tanda petik satu (') dengan menghapus bagian " ' " tetapi mengapa hasilnya masih tetap ada tanda (').
- .cells(2).value= "'" _
& evaluate( "=vlookup(""" & left(scode,lchar-1) & """,g3:h8,2,0)" ) _
& format( sdate , "-YY" ) _
& evaluate( "=vlookup(" & sdate & ", h12:i18 , 2 , 0 )" ) _
& format( mid( scode , lchar , 9 ) , "-" & evaluate( "=vlookup(""" & left(scode,lchar-1) & """,g3:i8,3,0)" ) ) end with
- Jika seandainya untuk table array dari fungsi vlookup tersebut akan diambil dari worksheet lain (misal dari Sheet 2) bagaimana penulisannya di kodenya?
Terima kasihSalam
Edo
On Sunday, November 29, 2015 8:35 PM, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
Wa'alaikumussalam wr wb
Hai Edo,
Prosedur TransformCode nya sudah dibuat ya. Sebaiknya diletakkan di general module agar bisa digunakan oleh prosedur lainnya, termasuk prosedur-prosedur events milik sheet manapun dan sebagainya.
Kemudian, cara memanggil prosedur nya diperbaiki. Kalau sempet, jalan-jalanlah ke blog milis tentang hal ini disini, yang ada bagian tentang cara memanggil prosedur lain dari sebuah prosedur.
Pada kasus Anda,
berikut ini yang Anda buat :
Cells(lRow, 3).Value = TransformCode.Cells(lRow, 3).Offset(0, -1).Resize(1, 2)
ini yang ada diimil saya tempo lalu :
transformcode cells(lrow,3).offset(0,-1).resize(1,2)
dan saya rasa jelas bahwa :
tapi, ganti bagian yang merah dengan
menunjukkan bahwa bagian yang berbunyi :
cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value 'isi kolom D
if err.number=0 then 'kolom D terisi dengan baik ?
cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value 'isi kolom B
endif 'selesai cek kolom D terisi dengan baik
harus diganti alias HAPUS bagian merah tersebut dan tulis baris kode berikut :
transformcode cells(lrow,3).offset(0,-1).resize(1,2)
Ada baiknya jika tidak langsung terfokus kepada baris-baris kode nya saja, tetapi runut dari awal imil sampai akhir imil disempatkan ditelaah dengan tartil.
Wassalamu'alaikum wr wb
Kid
2015-11-29 8:59 GMT+07:00 Edo Hanggoro Edo_Hanggoro@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Dear Mr. Kid,Assalamuallaikum Wr.Wb.
Terima kasih banyak atas bantuanya, tetapi saya masih mendapatkan kesulitan dalam melakukan proses pemanggilan transform code-nya dan selalu error.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, lRow As Long
If Not Intersect(Target, Range("C:C")) Is Nothing Then 'cek yang berubah beririsan dengan kolom C
Application.EnableEvents = False 'cegah Excel untuk responsif terhadap perilaku
On Error Resume Next 'lewati error yang terjadi
For Each rng In Intersect(Target, Range("C:C")) 'di setiap cells yang berubah di kolom C
lRow = rng.Row 'simpan baris
Cells(lRow, 3).Value = TransformCode.Cells(lRow, 3).Offset(0, -1).Resize(1, 2)
Next rng 'ke range yang berubah berikutnya
On Error GoTo 0 'kembalikan setting trap error ke default
Application.EnableEvents = True 'excel boleh responsif lagi
End If 'selesai cek
End Sub
Saya dapatkan error di bagian yang merah tersebut. Kira-kira kesalahannya ada dimana ya?
Mohon bantuannya sekali lagi.
Terima kasih
Edo
On Saturday, November 28, 2015 10:00 PM, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
Wa'alaikumussalam wr wb
Hai Edo,
*** sesuaikan dengan keadaan setempat jika berbeda dengan preview file lampiran milik Pak Edo
Pada sebuah general module, buat prosedur berikut : (misal diberi nama TransformCode)
public sub TransformCode( rngProc as range )
dim lChar as long, sDate as string, sCode as string
with rngproc 'kerja di range inputan rngProc
sdate=.cells(1).value2 'simpan nilai asli tanggal inputan ke sdate
scode=.cells(2).value2 'simpan nilai asli kode inputan ke scode
lchar=1 'karakter ke-1 -> mulainya proses loop
'dapatkan angka pertama (max di karakter ke-6 alias ada ruang max 5 karakter untuk header kode)
do until isnumeric( mid( scode , lchar , 1 ) ) or lchar>6 'cek dah nemu angka belum atau karakter diproses dah lebih dari 6
lchar=lchar+1 'pindah ke karakter berikutnya
loop 'ke proses loop dengan nilai karakter yang baru
'tulis ke cells ke-2 dari inputan (posisi cell kode)
'diawali petik satu ( ' )
'disambung hasil vlookup untuk ambil dari kolom H tabel yang atas (kode barang)
'disambung format tahun YY didahului delimiter dash ( - )
'disambung hasil vlookup untuk ambil dari kolom i tabel yang bawah (kode tanggal)
'disambung format kode digit dengan struktur format hasil vlookup untuk ambil dari kolom i tabel yang atas (kode digit)
'didahului delimiter dash ( - )
.cells(2).value= "'" _
& evaluate( "=vlookup(""" & left(scode,lchar-1) & """,g3:h8,2,0)" ) _
& format( sdate , "-YY" ) _
& evaluate( "=vlookup(" & sdate & ", h12:i18 , 2 , 0 )" ) _
& format( mid( scode , lchar , 9 ) , "-" & evaluate( "=vlookup(""" & left(scode,lchar-1) & """,g3:i8,3,0)" ) ) end with
end sub
Kemudian, pada event change milik worksheet terkait, diisi baris kode seperti di-imil yang lalu, yang bunyinya begini :
dim rng as range,lRow as long
if not intersect( target,range("c:c") ) is nothing then 'cek yang berubah beririsan dengan kolom C
application.enableevents=false 'cegah Excel untuk responsif terhadap perilaku
on error resume next 'lewati error yang terjadi
for each rng in intersect( target,range("c:c") ) 'di setiap cells yang berubah di kolom C
lrow=rng.row 'simpan baris
cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value 'isi kolom D
if err.number=0 then 'kolom D terisi dengan baik ?
cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value 'isi kolom B
endif 'selesai cek kolom D terisi dengan baik
err.clear 'hapus error yang terjadi
next rng 'ke range yang berubah berikutnya
on error goto 0 'kembalikan setting trap error ke default
application.enableevents=true 'excel boleh responsif lagi
endif 'selesai cek
tapi, ganti bagian yang merah dengan baris kode memanggil prosedur TransformCode dengan menyertakan range yang diproses, yaitu range tanggal inputan dan kode inputan (1 baris x 2 kolom) seperti bergini :
transformcode cells(lrow,3).offset(0,-1).resize(1,2)
yang bahasa manusianya :
"bi pibi, suruh anak buahmu si transformcode kerja ye. bi, kamu bawa range yang bisa kamu ambil sendiri ngikutin arahanku ini,
1. kamu ke kolom C lalu jalan sampe baris yang kuproses ini (sambil nyerahin nota ke pibi yang isinya nomer baris Excel)
[ cells(lrow,3) ] (lrow adalah lembaran nota yang diserahkan)
2. kalo dah nemu, kamu pindah ke kolom sebelumnya (berarti geser ke kiri 1 kolom) tapi tetep dibaris itu ya
[ .offset( 0 , -1 ) ] (kalau kolom, ke kanan itu ples, dan ke kiri itu min)
3. terus, karungin tuh range, mulai tempatmu itu, sampai kamu dapetin 2 kolom. Tapi cuman sebaris tempatmu doink ya
[ .resize( 1 , 2 ) ]
nah.. kalo dah penuh tuh karung, segera ke tempatnya si transformcode. Dia bakal minta syarat tuh kalo disuruh.
Kalo dia minta syarat, kasihin tuh karung. Kamu harus nungguin dia sampai selesai ya. Kalo dah selesai, lapor kesini."
Catatan :
a. kode barang baru diset untuk maksimal diawali oleh 5 karakter bukan angka. Silakan dikembangkan dan disesuaikan sendiri.
b. pencegahan kesalahan input tanggal (tidak bertipe datetime dan tidak bisa dijadikan datetime yang benar) ditambahkan sendiri.
c. inputan tanggal (bertipe datetime) atau kode yang tidak ada dalam daftar, silakan dicegah atau diberi proses sendiri.
d. pengubahan letak daftar-daftar, penambahan atau pengurangan isi dalam daftar, dan kesesuaian tipe data dalam daftar, silakan dilakukan penyesuaian di dalam baris-baris kode di atas secara mandiri.
e. proses yang dipicu bukan oleh pengubahan nilai kolom C atau beserta kolom lainnya, silakan disesuaikan sendiri baris kodenya.
f. pengembangkan dan penyesuaian dengan permasalahan yang mirip tetapi tidak sama datanya atau strukturnya, silakan dilakukan secara setahap demi setahap secara mandiri.
Moga-moga gak error ya..
Kalo error, silakan dilacak dan dicari solusinya per penyebab error.
btw,
kenapa kasusnya selalu mengganti nilai inputan user ? kok gak ditulis di kolom lain saja ? bukankah malah akan ada informasi dan bukti bahwa user pernah mengisi kurang tepat (salah ketik atau seklian struktur isiannya keliru) kalau hasil diletakkan di kolom lain.
Dan juga, bisa tanpa VBA.
Moga-moga bukan karena pengen tampak keren dengan begitu di-input langsung ganti... Soale, dikuatirkan malah nanti jadi masalah...
Kalo jadi menimbulkan masalah, jadi gak keren lagi dah...
Moga-moga...
Wa'alaikumussalam wr wb
Kid
2015-11-28 14:49 GMT+07:00 Edo_Hanggoro@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Assalamualaikum Wr.Wb.
Dear All,Saya sedang mencoba untuk membuat kodeVBA dan mohon bantuannya untuk dapat membuat kode VBA untuk formatcell secara otomatis dimana jika seandainya pada kolom Tanggal terdapat tanggal1 jan 2016 dan pada kolom Nomer Kode diketikan "SD1"
Dan untuk lebih jelasnya saya lampirkan filenya.
Terima Kasih sebelumnya.
Salam
Edo
#yiv4592230432 #yiv4592230432 -- #yiv4592230432ygrp-
Sun Nov 29, 2015 10:19 pm (PST) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
Hai Edo,
Pembarian tanda petik satu ( ' ) dalam penulisan suatu nilai ke sebuah
cells dimaksudkan agar nilai yang ditulis ke cells tersebut akan
diperlakukan cells Excel sebagai data bertipe text.
Merujuk ke sheet lain, tambahkan nama sheet dengan struktur 'nama sheetnya'!
sebelum alamat range yang dirujuk.
Wassalam,
Kid
2015-11-30 12:22 GMT+07:00 Edo Hanggoro Edo_Hanggoro@yahoo.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Dear All,
>
> Terima kasih atas bantuannya dan saya sudah coba dan tidak ada masalah.
> Ada beberapa hal yang ingin saya ketahui yaitu :
>
> - Di awal format terdapat tanda petik satu ('),apa fungsi dari tanda
> tersebut?
> - Saya mencoba untuk menghilangkan tanda petik satu (') dengan
> menghapus bagian " ' " tetapi mengapa hasilnya masih tetap ada tanda (').
> - .cells(2).value= "'" _
> & evaluate( "=vlookup(""" &
> left(scode,lchar-1) & """,g3:h8,2,0)" ) _
> & format( sdate , "-YY" ) _
> & evaluate( "=vlookup(" & sdate & ", h12:i18 ,
> 2 , 0 )" ) _
> & format( mid( scode , lchar , 9 ) , "-" &
> evaluate( "=vlookup(""" & left(scode,lchar-1) & """,g3:i8,3,0)" ) )
> end with
> - Jika seandainya untuk table array dari fungsi vlookup tersebut
> akan diambil dari worksheet lain (misal dari Sheet 2) bagaimana
> penulisannya di kodenya?
>
>
> Terima kasih
> Salam
>
> Edo
>
>
>
> On Sunday, November 29, 2015 8:35 PM, "'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
>
>
>
> Wa'alaikumussalam wr wb
>
> Hai Edo,
>
> Prosedur TransformCode nya sudah dibuat ya. Sebaiknya diletakkan di
> general module agar bisa digunakan oleh prosedur lainnya, termasuk
> prosedur-prosedur events milik sheet manapun dan sebagainya.
>
> Kemudian, cara memanggil prosedur nya diperbaiki. Kalau sempet,
> jalan-jalanlah ke blog milis tentang hal ini disini
> <http://b-excel.blogspot.co.id/2013/07/belajarvba-005-procedure-seri-1.html>,
> yang ada bagian tentang cara memanggil prosedur lain dari sebuah prosedur.
>
> Pada kasus Anda,
> berikut ini yang Anda buat :
> Cells(lRow, 3).Value = TransformCode.Cells(lRow, 3).Offset(0,
> -1).Resize(1, 2)
> ini yang ada diimil saya tempo lalu :
> transformcode cells(lrow,3).offset(0,-1).resize(1,2)
>
> dan saya rasa jelas bahwa :
>
> tapi, ganti *bagian yang merah *dengan
>
> menunjukkan bahwa bagian yang berbunyi :
> cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value
> 'isi kolom D
> if err.number=0 then 'kolom D terisi dengan baik ?
> cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value
> 'isi kolom B
> endif 'selesai cek kolom D terisi dengan baik
> harus diganti alias HAPUS bagian merah tersebut dan tulis baris kode
> berikut :
> transformcode cells(lrow,3).offset(0,-1).resize(1,2)
>
> Ada baiknya jika tidak langsung terfokus kepada baris-baris kode nya saja,
> tetapi runut dari awal imil sampai akhir imil disempatkan ditelaah dengan
> tartil.
>
>
> Wassalamu'alaikum wr wb
> Kid
>
>
>
> 2015-11-29 8:59 GMT+07:00 Edo Hanggoro Edo_Hanggoro@yahoo.com
> [belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Dear Mr. Kid,
> Assalamuallaikum Wr.Wb.
>
> Terima kasih banyak atas bantuanya, tetapi saya masih mendapatkan
> kesulitan dalam melakukan proses pemanggilan transform code-nya dan selalu
> error.
>
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim rng As Range, lRow As Long
> If Not Intersect(Target, Range("C:C")) Is Nothing Then 'cek yang
> berubah beririsan dengan kolom C
> Application.EnableEvents = False 'cegah Excel untuk responsif
> terhadap perilaku
> On Error Resume Next 'lewati error yang terjadi
> For Each rng In Intersect(Target, Range("C:C")) 'di setiap cells
> yang berubah di kolom C
> lRow = rng.Row 'simpan baris
> Cells(lRow, 3).Value = TransformCode.Cells(lRow,
> 3).Offset(0, -1).Resize(1, 2)
> Next rng 'ke range yang berubah berikutnya
> On Error GoTo 0 'kembalikan setting trap error ke
> default
> Application.EnableEvents = True 'excel boleh responsif lagi
> End If 'selesai cek
> End Sub
>
> Saya dapatkan error di bagian yang merah tersebut. Kira-kira kesalahannya
> ada dimana ya?
> Mohon bantuannya sekali lagi.
>
> Terima kasih
>
> Edo
>
>
>
>
> On Saturday, November 28, 2015 10:00 PM, "'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
>
>
>
> Wa'alaikumussalam wr wb
>
> Hai Edo,
>
> *** sesuaikan dengan keadaan setempat jika berbeda dengan preview file
> lampiran milik Pak Edo
> Pada sebuah general module, buat prosedur berikut : (misal diberi nama
> TransformCode)
> public sub TransformCode( rngProc as range )
> dim lChar as long, sDate as string, sCode as string
>
> with rngproc 'kerja di range inputan rngProc
> sdate=.cells(1).value2 'simpan nilai asli tanggal inputan
> ke sdate
> scode=.cells(2).value2 'simpan nilai asli kode inputan ke
> scode
> lchar=1 'karakter ke-1 -> mulainya
> proses loop
>
> 'dapatkan angka pertama (max di karakter ke-6 alias ada ruang
> max 5 karakter untuk header kode)
> do until isnumeric( mid( scode , lchar , 1 ) ) or lchar>6
> 'cek dah nemu angka belum atau karakter diproses dah lebih dari 6
> lchar=lchar+1 'pindah ke karakter berikutnya
> loop 'ke proses loop dengan nilai karakter yang baru
>
> 'tulis ke cells ke-2 dari inputan (posisi cell kode)
> 'diawali petik satu ( ' )
> 'disambung hasil vlookup untuk ambil dari kolom H tabel
> yang atas (kode barang)
> 'disambung format tahun YY didahului delimiter dash ( - )
> 'disambung hasil vlookup untuk ambil dari kolom i tabel
> yang bawah (kode tanggal)
> 'disambung format kode digit dengan struktur format hasil
> vlookup untuk ambil dari kolom i tabel yang atas (kode digit)
> 'didahului delimiter dash ( - )
> .cells(2).value= "'" _
> & evaluate( "=vlookup(""" & left(scode,lchar-1) &
> """,g3:h8,2,0)" ) _
> & format( sdate , "-YY" ) _
> & evaluate( "=vlookup(" & sdate & ", h12:i18 , 2 , 0
> )" ) _
> & format( mid( scode , lchar , 9 ) , "-" & evaluate(
> "=vlookup(""" & left(scode,lchar-1) & """,g3:i8,3,0)" ) )
> end with
> end sub
>
> Kemudian, pada event change milik worksheet terkait, diisi baris kode
> seperti di-imil yang lalu, yang bunyinya begini :
> dim rng as range,lRow as long
> if not intersect( target,range("c:c") ) is nothing then 'cek yang
> berubah beririsan dengan kolom C
> application.enableevents=false 'cegah Excel untuk responsif
> terhadap perilaku
> on error resume next 'lewati error yang terjadi
> for each rng in intersect( target,range("c:c") ) 'di setiap
> cells yang berubah di kolom C
> lrow=rng.row 'simpan baris
> cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value
> 'isi kolom D
> if err.number=0 then 'kolom D terisi dengan baik ?
> cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value
> 'isi kolom B
> endif 'selesai cek kolom D terisi dengan baik
> err.clear 'hapus error yang terjadi
> next rng 'ke range yang berubah berikutnya
> on error goto 0 'kembalikan setting trap error ke
> default
> application.enableevents=true 'excel boleh responsif lagi
> endif 'selesai cek
>
> tapi, ganti *bagian yang merah *dengan baris kode memanggil prosedur
> TransformCode dengan menyertakan range yang diproses, yaitu range tanggal
> inputan dan kode inputan (1 baris x 2 kolom) seperti bergini :
> transformcode cells(lrow,3).offset(0,-1).resize(1,2)
> yang bahasa manusianya :
> "bi pibi, suruh anak buahmu si transformcode kerja ye. bi, kamu bawa
> range yang bisa kamu ambil sendiri ngikutin arahanku ini,
> 1. kamu ke kolom C lalu jalan sampe baris yang kuproses ini (sambil
> nyerahin nota ke pibi yang isinya nomer baris Excel)
> [ cells(lrow,3) ] (lrow adalah lembaran nota yang diserahkan)
> 2. kalo dah nemu, kamu pindah ke kolom sebelumnya (berarti geser ke kiri
> 1 kolom) tapi tetep dibaris itu ya
> [ .offset( 0 , -1 ) ] (kalau kolom, ke kanan itu ples, dan ke kiri
> itu min)
> 3. terus, karungin tuh range, mulai tempatmu itu, sampai kamu dapetin 2
> kolom. Tapi cuman sebaris tempatmu doink ya
> [ .resize( 1 , 2 ) ]
> nah.. kalo dah penuh tuh karung, segera ke tempatnya si transformcode.
> Dia bakal minta syarat tuh kalo disuruh.
> Kalo dia minta syarat, kasihin tuh karung. Kamu harus nungguin dia sampai
> selesai ya. Kalo dah selesai, lapor kesini."
>
> Catatan :
> a. kode barang baru diset untuk maksimal diawali oleh 5 karakter bukan
> angka. Silakan dikembangkan dan disesuaikan sendiri.
> b. pencegahan kesalahan input tanggal (tidak bertipe datetime dan tidak
> bisa dijadikan datetime yang benar) ditambahkan sendiri.
> c. inputan tanggal (bertipe datetime) atau kode yang tidak ada dalam
> daftar, silakan dicegah atau diberi proses sendiri.
> d. pengubahan letak daftar-daftar, penambahan atau pengurangan isi dalam
> daftar, dan kesesuaian tipe data dalam daftar, silakan dilakukan
> penyesuaian di dalam baris-baris kode di atas secara mandiri.
> e. proses yang dipicu bukan oleh pengubahan nilai kolom C atau beserta
> kolom lainnya, silakan disesuaikan sendiri baris kodenya.
> f. pengembangkan dan penyesuaian dengan permasalahan yang mirip tetapi
> tidak sama datanya atau strukturnya, silakan dilakukan secara setahap demi
> setahap secara mandiri.
>
> Moga-moga gak error ya..
> Kalo error, silakan dilacak dan dicari solusinya per penyebab error.
>
>
> btw,
> kenapa kasusnya selalu mengganti nilai inputan user ? kok gak ditulis di
> kolom lain saja ? bukankah malah akan ada informasi dan bukti bahwa user
> pernah mengisi kurang tepat (salah ketik atau seklian struktur isiannya
> keliru) kalau hasil diletakkan di kolom lain.
> Dan juga, bisa tanpa VBA.
> Moga-moga bukan karena pengen tampak keren dengan begitu di-input langsung
> ganti... Soale, dikuatirkan malah nanti jadi masalah...
> Kalo jadi menimbulkan masalah, jadi gak keren lagi dah...
> Moga-moga...
>
> Wa'alaikumussalam wr wb
> Kid
>
>
>
>
> 2015-11-28 14:49 GMT+07:00 Edo_Hanggoro@yahoo.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
> Assalamualaikum Wr.Wb.
>
> Dear All,
> Saya sedang mencoba untuk membuat kode VBA dan mohon bantuannya untuk
> dapat membuat kode VBA untuk format cell secara otomatis dimana jika
> seandainya pada kolom Tanggal terdapat tanggal 1 jan 2016 dan pada kolom
> Nomer Kode diketikan "SD1", maka akan secara otomatis menjadi
> "SD002-1601-0001" (SD002 = Kode Barang, 16 =Kode Tahun , 02=Kode Tanggal,
> 0001 =Kode Digit).
>
> Dan untuk lebih jelasnya saya lampirkan filenya.
> Terima Kasih sebelumnya.
>
> Salam
>
> Edo
>
>
>
>
>
>
>
>
>
Pembarian tanda petik satu ( ' ) dalam penulisan suatu nilai ke sebuah
cells dimaksudkan agar nilai yang ditulis ke cells tersebut akan
diperlakukan cells Excel sebagai data bertipe text.
Merujuk ke sheet lain, tambahkan nama sheet dengan struktur 'nama sheetnya'!
sebelum alamat range yang dirujuk.
Wassalam,
Kid
2015-11-30 12:22 GMT+07:00 Edo Hanggoro Edo_Hanggoro@yahoo.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Dear All,
>
> Terima kasih atas bantuannya dan saya sudah coba dan tidak ada masalah.
> Ada beberapa hal yang ingin saya ketahui yaitu :
>
> - Di awal format terdapat tanda petik satu ('),apa fungsi dari tanda
> tersebut?
> - Saya mencoba untuk menghilangkan tanda petik satu (') dengan
> menghapus bagian " ' " tetapi mengapa hasilnya masih tetap ada tanda (').
> - .cells(2).value= "'" _
> & evaluate( "=vlookup(""" &
> left(scode,lchar-1) & """,g3:h8,2,0)" ) _
> & format( sdate , "-YY" ) _
> & evaluate( "=vlookup(" & sdate & ", h12:i18 ,
> 2 , 0 )" ) _
> & format( mid( scode , lchar , 9 ) , "-" &
> evaluate( "=vlookup(""" & left(scode,lchar-1) & """,g3:i8,3,0)" ) )
> end with
> - Jika seandainya untuk table array dari fungsi vlookup tersebut
> akan diambil dari worksheet lain (misal dari Sheet 2) bagaimana
> penulisannya di kodenya?
>
>
> Terima kasih
> Salam
>
> Edo
>
>
>
> On Sunday, November 29, 2015 8:35 PM, "'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
>
>
>
> Wa'alaikumussalam wr wb
>
> Hai Edo,
>
> Prosedur TransformCode nya sudah dibuat ya. Sebaiknya diletakkan di
> general module agar bisa digunakan oleh prosedur lainnya, termasuk
> prosedur-prosedur events milik sheet manapun dan sebagainya.
>
> Kemudian, cara memanggil prosedur nya diperbaiki. Kalau sempet,
> jalan-jalanlah ke blog milis tentang hal ini disini
> <http://b-excel.blogspot.co.id/2013/07/belajarvba-005-procedure-seri-1.html>,
> yang ada bagian tentang cara memanggil prosedur lain dari sebuah prosedur.
>
> Pada kasus Anda,
> berikut ini yang Anda buat :
> Cells(lRow, 3).Value = TransformCode.Cells(lRow, 3).Offset(0,
> -1).Resize(1, 2)
> ini yang ada diimil saya tempo lalu :
> transformcode cells(lrow,3).offset(0,-1).resize(1,2)
>
> dan saya rasa jelas bahwa :
>
> tapi, ganti *bagian yang merah *dengan
>
> menunjukkan bahwa bagian yang berbunyi :
> cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value
> 'isi kolom D
> if err.number=0 then 'kolom D terisi dengan baik ?
> cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value
> 'isi kolom B
> endif 'selesai cek kolom D terisi dengan baik
> harus diganti alias HAPUS bagian merah tersebut dan tulis baris kode
> berikut :
> transformcode cells(lrow,3).offset(0,-1).resize(1,2)
>
> Ada baiknya jika tidak langsung terfokus kepada baris-baris kode nya saja,
> tetapi runut dari awal imil sampai akhir imil disempatkan ditelaah dengan
> tartil.
>
>
> Wassalamu'alaikum wr wb
> Kid
>
>
>
> 2015-11-29 8:59 GMT+07:00 Edo Hanggoro Edo_Hanggoro@yahoo.com
> [belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Dear Mr. Kid,
> Assalamuallaikum Wr.Wb.
>
> Terima kasih banyak atas bantuanya, tetapi saya masih mendapatkan
> kesulitan dalam melakukan proses pemanggilan transform code-nya dan selalu
> error.
>
> Private Sub Worksheet_Change(ByVal Target As Range)
> Dim rng As Range, lRow As Long
> If Not Intersect(Target, Range("C:C")) Is Nothing Then 'cek yang
> berubah beririsan dengan kolom C
> Application.EnableEvents = False 'cegah Excel untuk responsif
> terhadap perilaku
> On Error Resume Next 'lewati error yang terjadi
> For Each rng In Intersect(Target, Range("C:C")) 'di setiap cells
> yang berubah di kolom C
> lRow = rng.Row 'simpan baris
> Cells(lRow, 3).Value = TransformCode.Cells(lRow,
> 3).Offset(0, -1).Resize(1, 2)
> Next rng 'ke range yang berubah berikutnya
> On Error GoTo 0 'kembalikan setting trap error ke
> default
> Application.EnableEvents = True 'excel boleh responsif lagi
> End If 'selesai cek
> End Sub
>
> Saya dapatkan error di bagian yang merah tersebut. Kira-kira kesalahannya
> ada dimana ya?
> Mohon bantuannya sekali lagi.
>
> Terima kasih
>
> Edo
>
>
>
>
> On Saturday, November 28, 2015 10:00 PM, "'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
>
>
>
> Wa'alaikumussalam wr wb
>
> Hai Edo,
>
> *** sesuaikan dengan keadaan setempat jika berbeda dengan preview file
> lampiran milik Pak Edo
> Pada sebuah general module, buat prosedur berikut : (misal diberi nama
> TransformCode)
> public sub TransformCode( rngProc as range )
> dim lChar as long, sDate as string, sCode as string
>
> with rngproc 'kerja di range inputan rngProc
> sdate=.cells(1).value2 'simpan nilai asli tanggal inputan
> ke sdate
> scode=.cells(2).value2 'simpan nilai asli kode inputan ke
> scode
> lchar=1 'karakter ke-1 -> mulainya
> proses loop
>
> 'dapatkan angka pertama (max di karakter ke-6 alias ada ruang
> max 5 karakter untuk header kode)
> do until isnumeric( mid( scode , lchar , 1 ) ) or lchar>6
> 'cek dah nemu angka belum atau karakter diproses dah lebih dari 6
> lchar=lchar+1 'pindah ke karakter berikutnya
> loop 'ke proses loop dengan nilai karakter yang baru
>
> 'tulis ke cells ke-2 dari inputan (posisi cell kode)
> 'diawali petik satu ( ' )
> 'disambung hasil vlookup untuk ambil dari kolom H tabel
> yang atas (kode barang)
> 'disambung format tahun YY didahului delimiter dash ( - )
> 'disambung hasil vlookup untuk ambil dari kolom i tabel
> yang bawah (kode tanggal)
> 'disambung format kode digit dengan struktur format hasil
> vlookup untuk ambil dari kolom i tabel yang atas (kode digit)
> 'didahului delimiter dash ( - )
> .cells(2).value= "'" _
> & evaluate( "=vlookup(""" & left(scode,lchar-1) &
> """,g3:h8,2,0)" ) _
> & format( sdate , "-YY" ) _
> & evaluate( "=vlookup(" & sdate & ", h12:i18 , 2 , 0
> )" ) _
> & format( mid( scode , lchar , 9 ) , "-" & evaluate(
> "=vlookup(""" & left(scode,lchar-1) & """,g3:i8,3,0)" ) )
> end with
> end sub
>
> Kemudian, pada event change milik worksheet terkait, diisi baris kode
> seperti di-imil yang lalu, yang bunyinya begini :
> dim rng as range,lRow as long
> if not intersect( target,range("c:c") ) is nothing then 'cek yang
> berubah beririsan dengan kolom C
> application.enableevents=false 'cegah Excel untuk responsif
> terhadap perilaku
> on error resume next 'lewati error yang terjadi
> for each rng in intersect( target,range("c:c") ) 'di setiap
> cells yang berubah di kolom C
> lrow=rng.row 'simpan baris
> cells(lrow,4).value=cells(lrow,2).value*cells(lrow,3).value
> 'isi kolom D
> if err.number=0 then 'kolom D terisi dengan baik ?
> cells(lrow,2).value=cells(lrow,2).value-cells(lrow,4).value
> 'isi kolom B
> endif 'selesai cek kolom D terisi dengan baik
> err.clear 'hapus error yang terjadi
> next rng 'ke range yang berubah berikutnya
> on error goto 0 'kembalikan setting trap error ke
> default
> application.enableevents=true 'excel boleh responsif lagi
> endif 'selesai cek
>
> tapi, ganti *bagian yang merah *dengan baris kode memanggil prosedur
> TransformCode dengan menyertakan range yang diproses, yaitu range tanggal
> inputan dan kode inputan (1 baris x 2 kolom) seperti bergini :
> transformcode cells(lrow,3).offset(0,-1).resize(1,2)
> yang bahasa manusianya :
> "bi pibi, suruh anak buahmu si transformcode kerja ye. bi, kamu bawa
> range yang bisa kamu ambil sendiri ngikutin arahanku ini,
> 1. kamu ke kolom C lalu jalan sampe baris yang kuproses ini (sambil
> nyerahin nota ke pibi yang isinya nomer baris Excel)
> [ cells(lrow,3) ] (lrow adalah lembaran nota yang diserahkan)
> 2. kalo dah nemu, kamu pindah ke kolom sebelumnya (berarti geser ke kiri
> 1 kolom) tapi tetep dibaris itu ya
> [ .offset( 0 , -1 ) ] (kalau kolom, ke kanan itu ples, dan ke kiri
> itu min)
> 3. terus, karungin tuh range, mulai tempatmu itu, sampai kamu dapetin 2
> kolom. Tapi cuman sebaris tempatmu doink ya
> [ .resize( 1 , 2 ) ]
> nah.. kalo dah penuh tuh karung, segera ke tempatnya si transformcode.
> Dia bakal minta syarat tuh kalo disuruh.
> Kalo dia minta syarat, kasihin tuh karung. Kamu harus nungguin dia sampai
> selesai ya. Kalo dah selesai, lapor kesini."
>
> Catatan :
> a. kode barang baru diset untuk maksimal diawali oleh 5 karakter bukan
> angka. Silakan dikembangkan dan disesuaikan sendiri.
> b. pencegahan kesalahan input tanggal (tidak bertipe datetime dan tidak
> bisa dijadikan datetime yang benar) ditambahkan sendiri.
> c. inputan tanggal (bertipe datetime) atau kode yang tidak ada dalam
> daftar, silakan dicegah atau diberi proses sendiri.
> d. pengubahan letak daftar-daftar, penambahan atau pengurangan isi dalam
> daftar, dan kesesuaian tipe data dalam daftar, silakan dilakukan
> penyesuaian di dalam baris-baris kode di atas secara mandiri.
> e. proses yang dipicu bukan oleh pengubahan nilai kolom C atau beserta
> kolom lainnya, silakan disesuaikan sendiri baris kodenya.
> f. pengembangkan dan penyesuaian dengan permasalahan yang mirip tetapi
> tidak sama datanya atau strukturnya, silakan dilakukan secara setahap demi
> setahap secara mandiri.
>
> Moga-moga gak error ya..
> Kalo error, silakan dilacak dan dicari solusinya per penyebab error.
>
>
> btw,
> kenapa kasusnya selalu mengganti nilai inputan user ? kok gak ditulis di
> kolom lain saja ? bukankah malah akan ada informasi dan bukti bahwa user
> pernah mengisi kurang tepat (salah ketik atau seklian struktur isiannya
> keliru) kalau hasil diletakkan di kolom lain.
> Dan juga, bisa tanpa VBA.
> Moga-moga bukan karena pengen tampak keren dengan begitu di-input langsung
> ganti... Soale, dikuatirkan malah nanti jadi masalah...
> Kalo jadi menimbulkan masalah, jadi gak keren lagi dah...
> Moga-moga...
>
> Wa'alaikumussalam wr wb
> Kid
>
>
>
>
> 2015-11-28 14:49 GMT+07:00 Edo_Hanggoro@yahoo.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
> Assalamualaikum Wr.Wb.
>
> Dear All,
> Saya sedang mencoba untuk membuat kode VBA dan mohon bantuannya untuk
> dapat membuat kode VBA untuk format cell secara otomatis dimana jika
> seandainya pada kolom Tanggal terdapat tanggal 1 jan 2016 dan pada kolom
> Nomer Kode diketikan "SD1"
> "SD002-
> 0001 =Kode Digit).
>
> Dan untuk lebih jelasnya saya lampirkan filenya.
> Terima Kasih sebelumnya.
>
> Salam
>
> Edo
>
>
>
>
>
>
>
>
>
Sun Nov 29, 2015 11:09 am (PST) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
Wa'alaikumussalam wr wb
Sambil menunggu file lampiran kirimannya mas Dody...
Proses entry data yang dituntut unique bisa diperoleh dengan banyak cara.
Salah satunya adalah dengan memanfaatkan data validation list. Data
validation list patut dipertimbangkan sebagai salah satu opsi untuk kasus
semacam ini, walaupun fitur ini memiliki banyak keterbatasan, karena :
a. dapat menampilkan daftar pilihan kepada user, sehingga nilai yang
di-entry bisa lebih standar.
b. cukup sederhana dan mudah untuk dipelajari dan disusun.
Data validation list pada kasus seperti ini dituntut untuk menampilkan
daftar pilihan yang belum pernah digunakan oleh user pada records lain.
Jika ingin mengetahui bagaimana cara memanfaatkan data validation list pada
kasus seperti ini, silakan jalan-jalan kesini
<http://excel-mr-kid.blogspot.co.id/2015/11/data-validation-list-unique-input.html>
.
Selamat mencoba...
Wassalamu'alaikum wr wb
Kid
2015-11-28 10:44 GMT+07:00 Dody Irawan dodyirawan84@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Assalamualaikum wr. wb.
>
>
> Mohon bantuan kepada semua master excel.
>
> bagaimana cara menghindari dobel input (misalnya NIP) pada form yang sudah
> saya buat ini.
>
> terimakasih.
>
> Semoga ilmunya semakin bermanfaat....
>
>
> Wassalamualaikum wr. wb.
>
> --- Mods ---
> File lampiran yang melebihi 250KB dilepas dari email. Penanya silakan
> melampirkan ulang file lampiran yang berisi contoh data dan telah
> diusahakan maksimal 250KB dengan cara me-reply email ini.
> ----------------
>
>
>
Sambil menunggu file lampiran kirimannya mas Dody...
Proses entry data yang dituntut unique bisa diperoleh dengan banyak cara.
Salah satunya adalah dengan memanfaatkan data validation list. Data
validation list patut dipertimbangkan sebagai salah satu opsi untuk kasus
semacam ini, walaupun fitur ini memiliki banyak keterbatasan, karena :
a. dapat menampilkan daftar pilihan kepada user, sehingga nilai yang
di-entry bisa lebih standar.
b. cukup sederhana dan mudah untuk dipelajari dan disusun.
Data validation list pada kasus seperti ini dituntut untuk menampilkan
daftar pilihan yang belum pernah digunakan oleh user pada records lain.
Jika ingin mengetahui bagaimana cara memanfaatkan data validation list pada
kasus seperti ini, silakan jalan-jalan kesini
<http://excel-mr-kid.blogspot.co.id/2015/11/data-validation-list-unique-input.html>
.
Selamat mencoba...
Wassalamu'alaikum wr wb
Kid
2015-11-28 10:44 GMT+07:00 Dody Irawan dodyirawan84@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Assalamualaikum wr. wb.
>
>
> Mohon bantuan kepada semua master excel.
>
> bagaimana cara menghindari dobel input (misalnya NIP) pada form yang sudah
> saya buat ini.
>
> terimakasih.
>
> Semoga ilmunya semakin bermanfaat..
>
>
> Wassalamualaikum wr. wb.
>
> --- Mods ---
> File lampiran yang melebihi 250KB dilepas dari email. Penanya silakan
> melampirkan ulang file lampiran yang berisi contoh data dan telah
> diusahakan maksimal 250KB dengan cara me-reply email ini.
> ------------
>
>
>
Sun Nov 29, 2015 3:42 pm (PST) . Posted by:
"Nang Agus"
Mungkinkah seperti ini?
2015-11-29 12:52 GMT+07:00 'jhony.excel' jhony.excel@yahoo.co.id
[belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Selamat siang semua,
>
> Saya mau tanya cara membuat daftar cicilan.
>
> Contoh
>
> harga mobil alphard cash Rp 1.500.000.000
> Yg ditanyakan bagaimana membuat daftar cicilan memakai dp dan beeapa
> besarnya dp yg dicicil serta berapa cicilan sisanya setelah dikurangi dp
>
> Harga cash 1.500.000.000
> Kredit selama (tenor) 36 bulan dgn Dp 10 % dicicil selama 10 x
>
>
> Harga = Rp ..........
> Dp 10% = Rp .........
>
> Cicilan Dp 1 = Rp ........
>
> S/d
>
> Cicilan Dp 10 = Rp .........
>
>
> Harga setelah Dp = Rp .............
>
> Diangsur selama 36 x
>
> Angsuran 1 = Rp ............
>
> S/d
>
> Angsuran 36 = Rp ............
>
>
> Mohon pencerahannya untuk pembuatan daftar cicilan dan angsurannya.
>
> Ditunggu pencerahannya
> Terima kasih sebelumnya
>
>
>
2015-11-29 12:52 GMT+07:00 'jhony.excel' jhony.excel@yahoo.co.id
[belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Selamat siang semua,
>
> Saya mau tanya cara membuat daftar cicilan.
>
> Contoh
>
> harga mobil alphard cash Rp 1.500.000.000
> Yg ditanyakan bagaimana membuat daftar cicilan memakai dp dan beeapa
> besarnya dp yg dicicil serta berapa cicilan sisanya setelah dikurangi dp
>
> Harga cash 1.500.000.000
> Kredit selama (tenor) 36 bulan dgn Dp 10 % dicicil selama 10 x
>
>
> Harga = Rp ..........
> Dp 10% = Rp .........
>
> Cicilan Dp 1 = Rp ........
>
> S/d
>
> Cicilan Dp 10 = Rp .........
>
>
> Harga setelah Dp = Rp ............
>
> Diangsur selama 36 x
>
> Angsuran 1 = Rp ............
>
> S/d
>
> Angsuran 36 = Rp ............
>
>
> Mohon pencerahannya untuk pembuatan daftar cicilan dan angsurannya.
>
> Ditunggu pencerahannya
> Terima kasih sebelumnya
>
>
>
Sun Nov 29, 2015 5:33 pm (PST) . Posted by:
"Yudi Dwiyono"
Dear Mr Kid,
Boleh saya tahu fungsi sumproduct dan mengapa di kali 1. Biar tambah ilmu
saja nih...
Thanks
Regards,
Yudi
---------- Forwarded message ----------
From: Yudi Dwiyono <yudidwiyono@gmail.com>
Date: 2015-11-28 9:29 GMT+07:00
Subject: Re: menghasil kan level persen
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Its working .....thanks a lot mr kid
Regards
Yudi
On Friday, November 27, 2015, 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com> wrote:
>
>
> Hai Yudi,
>
> Coba begini :
> =SumProduct( (d9:d11>=b9:b11) * 1 ) / CountA( a9:a11 )
>
> Regards
> Kid
>
>
>
>
> 2015-11-27 11:19 GMT+07:00 Yudi Dwiyono yudidwiyono@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>>
>>
>>
>> Dear Masters,
>>
>> Mohon bantuan untuk formula aga dapa menghasil kan service level yang
benar
>>
>> saya mempunyai contoh seperti terlampir
>> sekali lagi mohon bantuannya ya para master.
>> Thanks.
>>
>> Regards,
>> Yudi
>>
>
>
Boleh saya tahu fungsi sumproduct dan mengapa di kali 1. Biar tambah ilmu
saja nih...
Thanks
Regards,
Yudi
---------- Forwarded message ----------
From: Yudi Dwiyono <yudidwiyono@gmail.com>
Date: 2015-11-28 9:29 GMT+07:00
Subject: Re: menghasil kan level persen
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Its working .....thanks a lot mr kid
Regards
Yudi
On Friday, November 27, 2015, 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com> wrote:
>
>
> Hai Yudi,
>
> Coba begini :
> =SumProduct( (d9:d11>=b9:b11) * 1 ) / CountA( a9:a11 )
>
> Regards
> Kid
>
>
>
>
> 2015-11-27 11:19 GMT+07:00 Yudi Dwiyono yudidwiyono@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>>
>>
>>
>> Dear Masters,
>>
>> Mohon bantuan untuk formula aga dapa menghasil kan service level yang
benar
>>
>> saya mempunyai contoh seperti terlampir
>> sekali lagi mohon bantuannya ya para master.
>> Thanks.
>>
>> Regards,
>> Yudi
>>
>
>
Sun Nov 29, 2015 9:42 pm (PST) . Posted by:
"Yudi Dwiyono"
Dear Para Master,
Case pertama sudah selesai tetapi ada yang ke dua , Mohon bantu solusi
formula tanpa row bantuan, contoh yang di inginkan terlampir...
Thanks.
Regards,
Yudi
---------- Forwarded message ----------
From: Yudi Dwiyono <yudidwiyono@gmail.com>
Date: 2015-11-30 8:18 GMT+07:00
Subject: Fwd: menghasil kan level persen
To: belajar-excel@yahoogroups.com
Dear Mr Kid,
Boleh saya tahu fungsi sumproduct dan mengapa di kali 1. Biar tambah ilmu
saja nih...
Thanks
Regards,
Yudi
---------- Forwarded message ----------
From: Yudi Dwiyono <yudidwiyono@gmail.com>
Date: 2015-11-28 9:29 GMT+07:00
Subject: Re: menghasil kan level persen
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Its working .....thanks a lot mr kid
Regards
Yudi
On Friday, November 27, 2015, 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com> wrote:
>
>
> Hai Yudi,
>
> Coba begini :
> =SumProduct( (d9:d11>=b9:b11) * 1 ) / CountA( a9:a11 )
>
> Regards
> Kid
>
>
>
>
> 2015-11-27 11:19 GMT+07:00 Yudi Dwiyono yudidwiyono@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>>
>>
>>
>> Dear Masters,
>>
>> Mohon bantuan untuk formula aga dapa menghasil kan service level yang
benar
>>
>> saya mempunyai contoh seperti terlampir
>> sekali lagi mohon bantuannya ya para master.
>> Thanks.
>>
>> Regards,
>> Yudi
>>
>
>
Case pertama sudah selesai tetapi ada yang ke dua , Mohon bantu solusi
formula tanpa row bantuan, contoh yang di inginkan terlampir...
Thanks.
Regards,
Yudi
---------- Forwarded message ----------
From: Yudi Dwiyono <yudidwiyono@gmail.com>
Date: 2015-11-30 8:18 GMT+07:00
Subject: Fwd: menghasil kan level persen
To: belajar-excel@yahoogroups.com
Dear Mr Kid,
Boleh saya tahu fungsi sumproduct dan mengapa di kali 1. Biar tambah ilmu
saja nih...
Thanks
Regards,
Yudi
---------- Forwarded message ----------
From: Yudi Dwiyono <yudidwiyono@gmail.com>
Date: 2015-11-28 9:29 GMT+07:00
Subject: Re: menghasil kan level persen
To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
Its working .....thanks a lot mr kid
Regards
Yudi
On Friday, November 27, 2015, 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com> wrote:
>
>
> Hai Yudi,
>
> Coba begini :
> =SumProduct( (d9:d11>=b9:b11) * 1 ) / CountA( a9:a11 )
>
> Regards
> Kid
>
>
>
>
> 2015-11-27 11:19 GMT+07:00 Yudi Dwiyono yudidwiyono@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>>
>>
>>
>> Dear Masters,
>>
>> Mohon bantuan untuk formula aga dapa menghasil kan service level yang
benar
>>
>> saya mempunyai contoh seperti terlampir
>> sekali lagi mohon bantuannya ya para master.
>> Thanks.
>>
>> Regards,
>> Yudi
>>
>
>
Sun Nov 29, 2015 10:40 pm (PST) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
Hai Yudi,
1. SumProduct
SumProduct : melakukan Sum hasil dari Product alias di-product barulah
di-sum
Sum : menjumlahkan (total) seluruh nilai bertipe numerik yang di-inputkan
Product : mengalikan seluruh nilai bertipe numerik yang di-inputkan
Contoh : ada 2 bijik nilai 4 dan 6 mengisi 2 bijik area input fungsi-fungsi
di bawah ini
kalau Sum doink :
=Sum( 4 , 6 ) hasilnya 10
kalau SumProduct :
=SumProduct( 4 , 6 ) hasilnya 24
karena prosesnya adalah di-product dulu
Product( 4 , 6 ) hasilnya 24
barulah di-Sum
Sum( 24 ) hasilnya 24
Pada kasus Anda, penggunaan SumProduct hanya mengisi 1 bijik area input
alias tidak pakai koma-koma-an. Jadi, hal itu setara dengan contoh berikut :
=Sum( 4 ) hasilnya 4
dan
=SumProduct( 4 ) juga menghasilkan 4
karena Product( 4 ) hasilnya 4 lalu di-sum-ken dengan Sum( hasil product )
alias Sum( 4 ), maka hasilnya 4 sebagai hasil sumproduct
2. ada perkalian dengan 1
Karena :
a. SumProduct bekerja dengan data bertipe numerik.
b. nilai yang dimasukkan sebagai inputan dalam kasus Anda adalah suatu
proses perbandingan yang hasilnya bertipe boolean (true/false)
c. berhubung sumproduct minta syarat poin a, maka poin b harus diubah jadi
numerik, yaitu dengan mengkonversi tipe boolean menjadi numerik.
d. proses konversi tipe data di cells Excel bisa dengan dilakukan operasi
matematis.
e. operasi matematis yang tidak mengubah nilai asli data adalah : (urut
rekomendasi penggunaan)
- perkalian dengan 1
- penjumlahan dengan 0
- pengurangan dengan 0
- pembagian dengan 1
f. direkomendasikan menggunakan perkalian dengan 1 atau penjumlahan dengan
0 karena potensi berubahnya nilai asli data akibat kecenderungan properties
values dari object range akan menggunakan tipe double dibanding decimal.
g. hindari penggunaan konversi melalui pembagian dengan 0 kecuali tidak
dibutuhkan nilai data asli yang exact tetap.
Wassalam,
Kid
2015-11-30 8:18 GMT+07:00 Yudi Dwiyono yudidwiyono@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Dear Mr Kid,
>
> Boleh saya tahu fungsi sumproduct dan mengapa di kali 1. Biar tambah ilmu
> saja nih...
> Thanks
> Regards,
> Yudi
> ---------- Forwarded message ----------
> From: Yudi Dwiyono <yudidwiyono@gmail.com>
> Date: 2015-11-28 9:29 GMT+07:00
> Subject: Re: menghasil kan level persen
> To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>
>
> Its working .....thanks a lot mr kid
> Regards
> Yudi
>
> On Friday, November 27, 2015, 'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
> >
> >
> > Hai Yudi,
> >
> > Coba begini :
> > =SumProduct( (d9:d11>=b9:b11) * 1 ) / CountA( a9:a11 )
> >
> > Regards
>
> > Kid
> >
> >
> >
> >
> > 2015-11-27 11:19 GMT+07:00 Yudi Dwiyono yudidwiyono@gmail.com
> [belajar-excel] <belajar-excel@yahoogroups.com>:
> >>
> >>
> >>
> >> Dear Masters,
> >>
> >> Mohon bantuan untuk formula aga dapa menghasil kan service level yang
> benar
> >>
> >> saya mempunyai contoh seperti terlampir
> >> sekali lagi mohon bantuannya ya para master.
> >> Thanks.
> >>
> >> Regards,
> >> Yudi
> >>
> >
> >
>
>
>
1. SumProduct
SumProduct : melakukan Sum hasil dari Product alias di-product barulah
di-sum
Sum : menjumlahkan (total) seluruh nilai bertipe numerik yang di-inputkan
Product : mengalikan seluruh nilai bertipe numerik yang di-inputkan
Contoh : ada 2 bijik nilai 4 dan 6 mengisi 2 bijik area input fungsi-fungsi
di bawah ini
kalau Sum doink :
=Sum( 4 , 6 ) hasilnya 10
kalau SumProduct :
=SumProduct( 4 , 6 ) hasilnya 24
karena prosesnya adalah di-product dulu
Product( 4 , 6 ) hasilnya 24
barulah di-Sum
Sum( 24 ) hasilnya 24
Pada kasus Anda, penggunaan SumProduct hanya mengisi 1 bijik area input
alias tidak pakai koma-koma-an. Jadi, hal itu setara dengan contoh berikut :
=Sum( 4 ) hasilnya 4
dan
=SumProduct( 4 ) juga menghasilkan 4
karena Product( 4 ) hasilnya 4 lalu di-sum-ken dengan Sum( hasil product )
alias Sum( 4 ), maka hasilnya 4 sebagai hasil sumproduct
2. ada perkalian dengan 1
Karena :
a. SumProduct bekerja dengan data bertipe numerik.
b. nilai yang dimasukkan sebagai inputan dalam kasus Anda adalah suatu
proses perbandingan yang hasilnya bertipe boolean (true/false)
c. berhubung sumproduct minta syarat poin a, maka poin b harus diubah jadi
numerik, yaitu dengan mengkonversi tipe boolean menjadi numerik.
d. proses konversi tipe data di cells Excel bisa dengan dilakukan operasi
matematis.
e. operasi matematis yang tidak mengubah nilai asli data adalah : (urut
rekomendasi penggunaan)
- perkalian dengan 1
- penjumlahan dengan 0
- pengurangan dengan 0
- pembagian dengan 1
f. direkomendasikan menggunakan perkalian dengan 1 atau penjumlahan dengan
0 karena potensi berubahnya nilai asli data akibat kecenderungan properties
values dari object range akan menggunakan tipe double dibanding decimal.
g. hindari penggunaan konversi melalui pembagian dengan 0 kecuali tidak
dibutuhkan nilai data asli yang exact tetap.
Wassalam,
Kid
2015-11-30 8:18 GMT+07:00 Yudi Dwiyono yudidwiyono@gmail.com
[belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
> Dear Mr Kid,
>
> Boleh saya tahu fungsi sumproduct dan mengapa di kali 1. Biar tambah ilmu
> saja nih...
> Thanks
> Regards,
> Yudi
> ---------- Forwarded message ----------
> From: Yudi Dwiyono <yudidwiyono@gmail.com>
> Date: 2015-11-28 9:29 GMT+07:00
> Subject: Re: menghasil kan level persen
> To: "belajar-excel@yahoogroups.com" <belajar-excel@yahoogroups.com>
>
>
> Its working .....thanks a lot mr kid
> Regards
> Yudi
>
> On Friday, November 27, 2015, 'Mr. Kid' mr.nmkid@gmail.com
> [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
> >
> >
> > Hai Yudi,
> >
> > Coba begini :
> > =SumProduct( (d9:d11>=b9:b11) * 1 ) / CountA( a9:a11 )
> >
> > Regards
>
> > Kid
> >
> >
> >
> >
> > 2015-11-27 11:19 GMT+07:00 Yudi Dwiyono yudidwiyono@gmail.com
> [belajar-excel] <belajar-excel@yahoogroups.com>:
> >>
> >>
> >>
> >> Dear Masters,
> >>
> >> Mohon bantuan untuk formula aga dapa menghasil kan service level yang
> benar
> >>
> >> saya mempunyai contoh seperti terlampir
> >> sekali lagi mohon bantuannya ya para master.
> >> Thanks.
> >>
> >> Regards,
> >> Yudi
> >>
> >
> >
>
>
>
Sun Nov 29, 2015 9:40 pm (PST) . Posted by:
"imam cahyo yuwono"
Assalamu'alaikum wr wbDear Mr Kid
Terima Kasih sekali masukannya dan sudah saya coba namun masih ada kendala1. nomor urut masih belum berjalan, lagi di coba-coba sambil belajar memahami script nya, nomor urut yang tampil di TB 1 merupakan namor lanjutan dari data yang sudah di input
2. tanggal sudah sukses sama link antar text box3. listbox masih belum bisa dan terus diusahakan mungkin ada yang kelewat he.. he...4. yang saya maksud SS FORM File (SCREEN SHOT) format PNG, message box kadang muncul (maklum nyebut SS mantan Gamer).5. niru nya asli ikhlas seikhlas-ikhlasnyanya bukan penuh lagi Mister dah luber kemana-mana tapi tau yang nge upload file yang saya contoh he.. he... he... , saya meniru karena ada kemiripan dengan form yang saya buat
6. ketika tombol simpan di klik not responding masih muncul di tunggu lama banget kalau dipaksa berhenti make task manager yang di input masuk termasuk nomor urut, tapi ga tampil di TB 1 Nomor nya, saya memang menulis script di sheet itu untuk otomatisasi membaca tanggal menjadi bulan dalam bentuk text, dan border otomatis, untuk otomatisasi bulan sih sukses tapi untuk border gagal.7. saya pernah mencoba membuat script otomatasi tanggal jadi text bulan ada dua yanggal yang di coba di rubah tapi ga jalan kalo cuma satu jalan ini scriptnya seklian sama yang bordernya :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 2 Then
If Target.Cells.Count = 1 Then
If Len(Target.Value) > 0 Then
Target(1, 9).Value = Format(Range("B4").End(xlDown).Value, "mmmm")
Else
Target(1, 9).ClearContents
End If
End If
End If
End Sub
Sub kasihBorder(baris As Integer)
Application.EnableEvents = False
Dim strCells As String
strCells = "a" & baris & ":j" & baris
Sheet3.Activate
Range(strCells).Select
Selection.Borders(xlDiagonalDown).linestyle = xlNone
Selection.Borders(xlDiagonalUp).linestyle = xlNone
With Selection.Borders(xlEdgeLeft)
.linestyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.linestyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.linestyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.linestyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.linestyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub
mungkin itu masalahnya kalo dipiondah ke module gimana atau di tambah apa scriptnya
maaaf banyak nanya maklum newbie otodidak lagi, kalo punya kamus bahasa VBA untuk excel minta dong he.. he..
terima kasih
Wassalamu'alaikum wr wb
On Friday, November 27, 2015 1:13 AM, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
Wa'alaikumussalam wr wb
yaa.... mas Toby lagi gak mau atau gak sempet membuatkan script nya....
0. saya sedang mencoba membuat form input data namun ketika di coba menjadi not responding kesalahannya dimana ya ?
>> coba periksa semua prosedur di dalam workbook, jika ada proses menulis ke suatu worksheet yang worksheet tersebut dipasangi event change, maka proses menulisnya harus berbentuk begini :
application.enableevents=false
'baris-baris untuk menulis ke worksheets
application.enableevents=true
1. no urut otomatis dan tampil ti TB1
>> Asumsinya nomor baris adalah nomor record baru di suatu tabel (misal di sheet Rekap), dan header tabelnya hanya 1 baris, serta tidak ada baris kosong diantara dua record data, buat jadi begini :
a. hapus semua cells diatas header, dikanan tabel, dan di bawah tabel
b. periksa semua script dalam userform, dan hapus semua baris yang tujuan menulis suatu nilai ke TB1
c. buat event initialize di userform, kemudian tambahkan baris ini : (header tabel di sheet rekap mulai di A4)
tb1.text=sheets("rekap").range("a4").currentregion.rows.count
d. jika diuserform ada tombol save atau new form atau clear form atau yang semacamnya, tambahkan juga baris poin c di event click setiap tombol-tombol itu (di preview tidak bisa lihat VBA, jadi ada userform namanya apa juga tidak tahu. Ada userform apa saja juga tidak tahu).
2. tanggal muncul di TB2
>> Jika tanggalnya pasti tanggal hari ini, maka lakukan hal ini :
a1. periksa semua script dalam userform, dan hapus semua baris yang tujuan menulis suatu nilai ke TB2
b1. di event initialize userform, event click tombol save, new form, atau clear form beri baris kode :
tb2.text=format(date , "YYYY-MM-DD")
>> Jika tanggalnya tidak pasti hari ini, berarti butuh control seperti calendar. Di event click si calendar diisi begini : (pilih salah satu kondisi yang sesuai keadaan setempat, dan sesuaikan nama objectnya juga)
a2. ketika calendar (misal bernama oCalendar) menjadi object di dalam userform yang sama dengan TB2 :
tb2.text = format(oCalendar.value, "YYYY-MM-DD")
b2. ketika calendar (misal bernama oCalendar) berada di userform yang berbeda dengan TB2 (misal di klik sesuatu muncul userform berisi calendar) dan userform yang berisi TB2 bernama myForm, maka di event click si calendar diisi begini :
myForm.TB2.text = format(oCalendar.value, "YYYY-MM-DD")
*** jika ada event lain di dalam userform yang menulis ke TB2 dengan nilai dari calendar, ubah juga menjadi seperti a2 atau b2
3. TB9 nilainya sama dengan TB2 dan TB10 sama dengan TB3 seperti link gitu
>> untuk TB9 yang nilainya sama dengan TB2, bisa dengan salah satu cara berikut : (pilih salah satu)
a. di nomor 2 di atas, tambahkan baris yang sama, tetapi untuk menulis ke TB9 (yang di nomor 2 itu kan baru nulis ke TB2 doink)
b. di event change milik TB2, beri baris kode berikut :
tb9.text=tb2.text
>> untuk TB10 yang nilainya sama dengan TB3, di event change milik TB3 diberi baris kode :
tb10.text=tb3.text
4. tampilan listbox gagal terus begitu dengan nomor urut
>> jika listbox menampilkan record yang ada di sheet rekap, begini :
a. set properti listbox supaya bisa menerima banyak kolom. Bila perlu properti columnheads di set true
b. di event initialize userform, event click tombol save, new form, atau clear form beri baris kode : (misal listbox bernama lstRekap)
dim rng as range
lstrekap.rowsource=vbnullstring
set rng=sheets("rekap").range("a4").currentregion.offset(1)
if rng.rows.count>1 then
set rng=rng.resize(rng.rows.count-1)
rng.name="_dtRekap_" 'buat nama range
lstrekap.rowsource="_dtRekap_" endif
5. ingin buat tombol edit agar kalo ada kesalahan bisa di edit langsung di user form
>> ya dibuat saja... kalau mau diletakkan dalam worksheet, insert activex control commandbutton atau insert shape atau insert form2 control button, lalu isi dengan script untuk memanggil userform edit datanya.
6. kadang muncul pesan seperti di SS FORM
>> wuah... apalagi ini SS FORM... saya ndak mudeng... mungkin bisa lebih jelas...
>> kalau form error yang biasanya ada tulisannya error runtime, berarti ada baris kode yang kliru atau masih ada object yang aktif bekerja saat akan ditutup. Mungkin form
>> minta disave, silakan tekan yes kalau mau di-save
>> security macro, silakan di enable supaya bisa jalan
>> data connection, silakan di enable supaya data connection bisa dijalankan
>> circular references, silakan diperbaiki cells berformula yang merujuk ke dirinya sendiri secara langsung atau tidak langsung
>> update links, silakan diupdate kalau memang sumber data yang di-link ada
>> gagal refresh query table atau connections, silakan diperbaiki bunyi query ataupun malah definisi connection nya
>> minta password, sila diisi passwordnya
>> tidak bisa di-save, ya jangan disave atau save as jadi file lain
>> pesan di shared dan script VBA tidak bisa dijalankan, ya terima saja, atau jangan di shared workbook
>> file corrupt, dicoba repair, moga-moga tidak apes
>> peringatan adanya personal data, ya di cancel dulu, terus ke Excel options -> trust center -> klik trust center -> privacy atau semacamnya -> hilangkan centang dari remove doc blabla on save gitu -> terus ok sampai ke worksheet dan coba save lagi
>> peringatan bahwa status file sudah tidak read only lagi, bisa pilih write atau apa saja yang ada disitu
apa lagi ya formnya... setelah diingat-ingat kok gak ada yang SS FORM ya...
embuh lah... moga-moga ada di salah satu diatas, yang menjadi si Excel terkesan cerewet...
7. file ini saya tiru dari download-an file yang saya contoh berjalan baik tapi punya saya error terus>> hmmm... mungkin nirunya tidak ikhlas sepenuh hati kale.... kalo sepenuh hati, biasanya akan diawali memahami setiap baris kode dari yang ditiru, sehingga bisa meniru dengan pas sesuai kebutuhan.
;)
maap ya kalo ada kliru-klirunya...
selamat mencoba
Wassalamu'alaikum wr wb
Kid
2015-11-26 8:45 GMT+07:00 imam cahyo yuwono chyywn@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>:
Assalamualaikum Wr. Wb.dear para expert.saya sedang mencoba membuat form input data namun ketika di coba menjadi not responding kesalahannya dimana ya ? adapun keinginan saya yang belum dapat saya pecahkan adalah :1. no urut otomatis dan tampil ti TB12. tanggal muncul di TB23. TB9 nilainya sama dengan TB2 dan TB10 sama dengan TB3 seperti link gitu4. tampilan listbox gagal terus begitu dengan nomor urut5 ingin buat tombol edit agar kalo ada kesalahan bisa di edit langsung di user form6. kadang muncul pesan seperti di SS FORM
file ini saya tiru dari download-an file yang saya contoh berjalan baik tapi punya saya error terus mohon bantuan solusinyaterima kasihWasallamualaik
#yiv5607413381 #yiv5607413381 -- #yiv5607413381ygrp-
Sun Nov 29, 2015 9:41 pm (PST) . Posted by:
"imam cahyo yuwono"
Assalamu'alaikum wr wbMr Kidmaksud saya saya ingin membuat rekap di file berbeda sheet seperti difilter berdasarkan dua kriteria misal nama tempat dan bulan di copy ke sheet selnjutnya dan di remove duplikanya tapi menggunakna macro
begitu mister, .... ini lanjuatn dari email saya yang tanggal 27 maret 2015 sudah di jawab oleh Mister Kid tapi masih ada kendala.terima kasih
Wassalamu'alaikum wr wb
On Wednesday, November 18, 2015 4:21 PM, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
Wa'alaikumussalam wr wb
Maaf, tidak mudeng apa yang Anda maksudkan.
Menghapus record yang membuatnya ter-duplicate bisa dengan fitur Remove Duplicate.
Wassalamu'alaikum wr wb
Kid
On Wed, Nov 18, 2015 at 8:36 AM, imam cahyo yuwono chyywn@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
Assalammualaikum Wr. Wb.
dear BeExceller,saya sudah mencoba beberapa contoh tentang macro ahkan mencoba menggabung dua contoh tentang menyalin dan menghapus data ganda belum di sort itu juga tapi yang berfungsi hanya sastu saja gimana ya cara nya
ini contoh yang saya gabungPrivate Sub CommandButton1_Click()Dim Z As LongDim iPaKolom As LongSet ipaone = Sheets("Sheet1")Set iPaFace = Sheets("Sheet2")Set UpaOne = ipaone.Range("A1:Z1000")iPaKolom = Range("B1000").End(xlUp).RowFor Z = iPaKolom To 1 Step -1IfApplication.WorksheetFunction.CountIf(Range("B1:B" Z),Range("B" Z).Text) > 1 ThenRange("B" Z).EntireRow.DeleteActiveSheet.Unprotectipaone.Range("A1:Z1").Copy iPaFace.Range("A1").PasteSpecial Paste:=xlPasteColumnWidthsUpaOne.SpecialCells _ (xlCellTypeVisible).Copy Destination:=iPaFace.Range("A1")End IfNext ZEnd Sub
sebaiknya bagai mana menggabung perintah perintah tersebutterima kasihWassalammualaikum Wr. Wb.
#yiv5112773708 -- #yiv5112773708ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv5112773708 #yiv5112773708ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv5112773708 #yiv5112773708ygrp-mkp #yiv5112773708hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv5112773708 #yiv5112773708ygrp-mkp #yiv5112773708ads {margin-bottom:10px;}#yiv5112773708 #yiv5112773708ygrp-mkp .yiv5112773708ad {padding:0 0;}#yiv5112773708 #yiv5112773708ygrp-mkp .yiv5112773708ad p {margin:0;}#yiv5112773708 #yiv5112773708ygrp-mkp .yiv5112773708ad a {color:#0000ff;text-decoration:none;}#yiv5112773708 #yiv5112773708ygrp-sponsor #yiv5112773708ygrp-lc {font-family:Arial;}#yiv5112773708 #yiv5112773708ygrp-sponsor #yiv5112773708ygrp-lc #yiv5112773708hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv5112773708 #yiv5112773708ygrp-sponsor #yiv5112773708ygrp-lc .yiv5112773708ad {margin-bottom:10px;padding:0 0;}#yiv5112773708 #yiv5112773708actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv5112773708 #yiv5112773708activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv5112773708 #yiv5112773708activity span {font-weight:700;}#yiv5112773708 #yiv5112773708activity span:first-child {text-transform:uppercase;}#yiv5112773708 #yiv5112773708activity span a {color:#5085b6;text-decoration:none;}#yiv5112773708 #yiv5112773708activity span span {color:#ff7900;}#yiv5112773708 #yiv5112773708activity span .yiv5112773708underline {text-decoration:underline;}#yiv5112773708 .yiv5112773708attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv5112773708 .yiv5112773708attach div a {text-decoration:none;}#yiv5112773708 .yiv5112773708attach img {border:none;padding-right:5px;}#yiv5112773708 .yiv5112773708attach label {display:block;margin-bottom:5px;}#yiv5112773708 .yiv5112773708attach label a {text-decoration:none;}#yiv5112773708 blockquote {margin:0 0 0 4px;}#yiv5112773708 .yiv5112773708bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv5112773708 .yiv5112773708bold a {text-decoration:none;}#yiv5112773708 dd.yiv5112773708last p a {font-family:Verdana;font-weight:700;}#yiv5112773708 dd.yiv5112773708last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv5112773708 dd.yiv5112773708last p span.yiv5112773708yshortcuts {margin-right:0;}#yiv5112773708 div.yiv5112773708attach-table div div a {text-decoration:none;}#yiv5112773708 div.yiv5112773708attach-table {width:400px;}#yiv5112773708 div.yiv5112773708file-title a, #yiv5112773708 div.yiv5112773708file-title a:active, #yiv5112773708 div.yiv5112773708file-title a:hover, #yiv5112773708 div.yiv5112773708file-title a:visited {text-decoration:none;}#yiv5112773708 div.yiv5112773708photo-title a, #yiv5112773708 div.yiv5112773708photo-title a:active, #yiv5112773708 div.yiv5112773708photo-title a:hover, #yiv5112773708 div.yiv5112773708photo-title a:visited {text-decoration:none;}#yiv5112773708 div#yiv5112773708ygrp-mlmsg #yiv5112773708ygrp-msg p a span.yiv5112773708yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv5112773708 .yiv5112773708green {color:#628c2a;}#yiv5112773708 .yiv5112773708MsoNormal {margin:0 0 0 0;}#yiv5112773708 o {font-size:0;}#yiv5112773708 #yiv5112773708photos div {float:left;width:72px;}#yiv5112773708 #yiv5112773708photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv5112773708 #yiv5112773708photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv5112773708 #yiv5112773708reco-category {font-size:77%;}#yiv5112773708 #yiv5112773708reco-desc {font-size:77%;}#yiv5112773708 .yiv5112773708replbq {margin:4px;}#yiv5112773708 #yiv5112773708ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv5112773708 #yiv5112773708ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv5112773708 #yiv5112773708ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv5112773708 #yiv5112773708ygrp-mlmsg select, #yiv5112773708 input, #yiv5112773708 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv5112773708 #yiv5112773708ygrp-mlmsg pre, #yiv5112773708 code {font:115% monospace;}#yiv5112773708 #yiv5112773708ygrp-mlmsg * {line-height:1.22em;}#yiv5112773708 #yiv5112773708ygrp-mlmsg #yiv5112773708logo {padding-bottom:10px;}#yiv5112773708 #yiv5112773708ygrp-msg p a {font-family:Verdana;}#yiv5112773708 #yiv5112773708ygrp-msg p#yiv5112773708attach-count span {color:#1E66AE;font-weight:700;}#yiv5112773708 #yiv5112773708ygrp-reco #yiv5112773708reco-head {color:#ff7900;font-weight:700;}#yiv5112773708 #yiv5112773708ygrp-reco {margin-bottom:20px;padding:0px;}#yiv5112773708 #yiv5112773708ygrp-sponsor #yiv5112773708ov li a {font-size:130%;text-decoration:none;}#yiv5112773708 #yiv5112773708ygrp-sponsor #yiv5112773708ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv5112773708 #yiv5112773708ygrp-sponsor #yiv5112773708ov ul {margin:0;padding:0 0 0 8px;}#yiv5112773708 #yiv5112773708ygrp-
begitu mister, .... ini lanjuatn dari email saya yang tanggal 27 maret 2015 sudah di jawab oleh Mister Kid tapi masih ada kendala.terima kasih
Wassalamu'alaikum wr wb
On Wednesday, November 18, 2015 4:21 PM, "'Mr. Kid' mr.nmkid@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> wrote:
Wa'alaikumussalam wr wb
Maaf, tidak mudeng apa yang Anda maksudkan.
Menghapus record yang membuatnya ter-duplicate bisa dengan fitur Remove Duplicate.
Wassalamu'alaikum wr wb
Kid
On Wed, Nov 18, 2015 at 8:36 AM, imam cahyo yuwono chyywn@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
Assalammualaikum Wr. Wb.
dear BeExceller,saya sudah mencoba beberapa contoh tentang macro ahkan mencoba menggabung dua contoh tentang menyalin dan menghapus data ganda belum di sort itu juga tapi yang berfungsi hanya sastu saja gimana ya cara nya
ini contoh yang saya gabungPrivate Sub CommandButton1_
sebaiknya bagai mana menggabung perintah perintah tersebutterima kasihWassalammualai
#yiv5112773708 -- #yiv5112773708ygrp-