6 Messages
Digest #3664
Messages
Sat Nov 28, 2015 2:40 am (PST) . Posted by:
edo_hanggoro
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
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"
Dan untuk lebih jelasnya saya lampirkan filenya.
Terima Kasih sebelumnya.
Salam
Edo
Sat Nov 28, 2015 7:00 am (PST) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
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,
*** 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
>
>
>
Sat Nov 28, 2015 8:24 pm (PST) . Posted by:
"Edo Hanggoro" edo_hanggoro
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
#yiv1481508598 #yiv1481508598 -- #yiv1481508598ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv1481508598 #yiv1481508598ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv1481508598 #yiv1481508598ygrp-mkp #yiv1481508598hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv1481508598 #yiv1481508598ygrp-mkp #yiv1481508598ads {margin-bottom:10px;}#yiv1481508598 #yiv1481508598ygrp-mkp .yiv1481508598ad {padding:0 0;}#yiv1481508598 #yiv1481508598ygrp-mkp .yiv1481508598ad p {margin:0;}#yiv1481508598 #yiv1481508598ygrp-mkp .yiv1481508598ad a {color:#0000ff;text-decoration:none;}#yiv1481508598 #yiv1481508598ygrp-sponsor #yiv1481508598ygrp-lc {font-family:Arial;}#yiv1481508598 #yiv1481508598ygrp-sponsor #yiv1481508598ygrp-lc #yiv1481508598hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv1481508598 #yiv1481508598ygrp-sponsor #yiv1481508598ygrp-lc .yiv1481508598ad {margin-bottom:10px;padding:0 0;}#yiv1481508598 #yiv1481508598actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv1481508598 #yiv1481508598activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv1481508598 #yiv1481508598activity span {font-weight:700;}#yiv1481508598 #yiv1481508598activity span:first-child {text-transform:uppercase;}#yiv1481508598 #yiv1481508598activity span a {color:#5085b6;text-decoration:none;}#yiv1481508598 #yiv1481508598activity span span {color:#ff7900;}#yiv1481508598 #yiv1481508598activity span .yiv1481508598underline {text-decoration:underline;}#yiv1481508598 .yiv1481508598attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv1481508598 .yiv1481508598attach div a {text-decoration:none;}#yiv1481508598 .yiv1481508598attach img {border:none;padding-right:5px;}#yiv1481508598 .yiv1481508598attach label {display:block;margin-bottom:5px;}#yiv1481508598 .yiv1481508598attach label a {text-decoration:none;}#yiv1481508598 blockquote {margin:0 0 0 4px;}#yiv1481508598 .yiv1481508598bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv1481508598 .yiv1481508598bold a {text-decoration:none;}#yiv1481508598 dd.yiv1481508598last p a {font-family:Verdana;font-weight:700;}#yiv1481508598 dd.yiv1481508598last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv1481508598 dd.yiv1481508598last p span.yiv1481508598yshortcuts {margin-right:0;}#yiv1481508598 div.yiv1481508598attach-table div div a {text-decoration:none;}#yiv1481508598 div.yiv1481508598attach-table {width:400px;}#yiv1481508598 div.yiv1481508598file-title a, #yiv1481508598 div.yiv1481508598file-title a:active, #yiv1481508598 div.yiv1481508598file-title a:hover, #yiv1481508598 div.yiv1481508598file-title a:visited {text-decoration:none;}#yiv1481508598 div.yiv1481508598photo-title a, #yiv1481508598 div.yiv1481508598photo-title a:active, #yiv1481508598 div.yiv1481508598photo-title a:hover, #yiv1481508598 div.yiv1481508598photo-title a:visited {text-decoration:none;}#yiv1481508598 div#yiv1481508598ygrp-mlmsg #yiv1481508598ygrp-msg p a span.yiv1481508598yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv1481508598 .yiv1481508598green {color:#628c2a;}#yiv1481508598 .yiv1481508598MsoNormal {margin:0 0 0 0;}#yiv1481508598 o {font-size:0;}#yiv1481508598 #yiv1481508598photos div {float:left;width:72px;}#yiv1481508598 #yiv1481508598photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv1481508598 #yiv1481508598photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv1481508598 #yiv1481508598reco-category {font-size:77%;}#yiv1481508598 #yiv1481508598reco-desc {font-size:77%;}#yiv1481508598 .yiv1481508598replbq {margin:4px;}#yiv1481508598 #yiv1481508598ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv1481508598 #yiv1481508598ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv1481508598 #yiv1481508598ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv1481508598 #yiv1481508598ygrp-mlmsg select, #yiv1481508598 input, #yiv1481508598 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv1481508598 #yiv1481508598ygrp-mlmsg pre, #yiv1481508598 code {font:115% monospace;}#yiv1481508598 #yiv1481508598ygrp-mlmsg * {line-height:1.22em;}#yiv1481508598 #yiv1481508598ygrp-mlmsg #yiv1481508598logo {padding-bottom:10px;}#yiv1481508598 #yiv1481508598ygrp-msg p a {font-family:Verdana;}#yiv1481508598 #yiv1481508598ygrp-msg p#yiv1481508598attach-count span {color:#1E66AE;font-weight:700;}#yiv1481508598 #yiv1481508598ygrp-reco #yiv1481508598reco-head {color:#ff7900;font-weight:700;}#yiv1481508598 #yiv1481508598ygrp-reco {margin-bottom:20px;padding:0px;}#yiv1481508598 #yiv1481508598ygrp-sponsor #yiv1481508598ov li a {font-size:130%;text-decoration:none;}#yiv1481508598 #yiv1481508598ygrp-sponsor #yiv1481508598ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv1481508598 #yiv1481508598ygrp-sponsor #yiv1481508598ov ul {margin:0;padding:0 0 0 8px;}#yiv1481508598 #yiv1481508598ygrp-text {font-family:Georgia;}#yiv1481508598 #yiv1481508598ygrp-text p {margin:0 0 1em 0;}#yiv1481508598 #yiv1481508598ygrp-text tt {font-size:120%;}#yiv1481508598 #yiv1481508598ygrp-vital ul li:last-child {border-right:none !important;}#yiv1481508598
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
#yiv1481508598 #yiv1481508598 -- #yiv1481508598ygrp-
Sat Nov 28, 2015 3:18 am (PST) . Posted by:
"Hendrik Karnadi" hendrikkarnadi
Kalo gitu coba dishare dummy filenya dan diberi ket function atau formula mana yang tidak berjalan secara otomatis.
Salam,
HK
Sent from Samsung Mobile
<div>-------- Original message --------</div><div>From: "'prazt' praztmath@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> </div><div>Date:28/11/2015 10:23 AM (GMT+07:00) </div><div>To: belajar-excel@yahoogroups.com </div><div>Subject: RE: [belajar-excel] Rumus Tidak bisa berjalan otomatis </div><div>
</div>Regional seting pake indonesia di 3 pc dan 1 pc united stated untuk uji coba file tersebut
From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: 28 November 2015 10.09
To: belajar-excel@yahoogroups.com
Subject: Re: [belajar-excel] Rumus Tidak bisa berjalan otomatis
Hai Prazt,
Kalau yang anda maksud formula adalah Function....coba cek rehonal settingnya.
Salam,
HK
Sent from Samsung Mobile
-------- Original message --------
From: "'prazt' praztmath@gmail.com [belajar-excel]"
Date:28/11/2015 9:56 AM (GMT+07:00)
To: belajar-excel@yahoogroups.com
Subject: [belajar-excel] Rumus Tidak bisa berjalan otomatis
Dear para mastah,
Mohon solusinya, kenapa file excel yang didalamnya ada formulanya kok kadang tidak bisa berjalan/mengkalkulasi otomatis ya? Tapi kadang bisa, padahal setingan kalkulasi sudah diset otomatis, dan saya coba di beberapa pc dengan versi office berbeda juga, kadang-kadang tetep tidak bisa otomatis..file tersebut saya bikin menggunakan office 2007, sudah saya coba pakai microsoft fix it juga ga bisa, di pc saya hanya terinstal satu versi office (office 2007)...mohon penjelasan beserta solusinya para mastah..terimakasih sebelumnya
Email tidak mengandung virus pemeriksaan mengunakan piranti Avast antivirus.
www.avast.com
Email tidak mengandung virus pemeriksaan mengunakan piranti Avast antivirus.
www.avast.com
Salam,
HK
Sent from Samsung Mobile
<div>-------- Original message --------</div><div>From: "'prazt' praztmath@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> </div><div>Date:28/11/2015 10:23 AM (GMT+07:00) </div><div>To: belajar-excel@yahoogroups.com </div><div>Subject: RE: [belajar-excel] Rumus Tidak bisa berjalan otomatis </div><div>
</div>Regional seting pake indonesia di 3 pc dan 1 pc united stated untuk uji coba file tersebut
From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: 28 November 2015 10.09
To: belajar-excel@yahoogroups.com
Subject: Re: [belajar-excel] Rumus Tidak bisa berjalan otomatis
Hai Prazt,
Kalau yang anda maksud formula adalah Function....coba cek rehonal settingnya.
Salam,
HK
Sent from Samsung Mobile
-------- Original message --------
From: "'prazt' praztmath@gmail.com [belajar-excel]"
Date:28/11/2015 9:56 AM (GMT+07:00)
To: belajar-excel@yahoogroups.com
Subject: [belajar-excel] Rumus Tidak bisa berjalan otomatis
Dear para mastah,
Mohon solusinya, kenapa file excel yang didalamnya ada formulanya kok kadang tidak bisa berjalan/mengkalkul
Email tidak mengandung virus pemeriksaan mengunakan piranti Avast antivirus.
www.avast.com
Email tidak mengandung virus pemeriksaan mengunakan piranti Avast antivirus.
www.avast.com
Sat Nov 28, 2015 7:19 am (PST) . Posted by:
deleteclick
Assalamualaikum....
Mau minta tolong, apakah ada module untuk merubah jam menjadi teks di excel
Contoh:
10.15 menjadi "sepuluh lewat lima belas"
Terima kasih sebelumnya
Mau minta tolong, apakah ada module untuk merubah jam menjadi teks di excel
Contoh:
10.15 menjadi "sepuluh lewat lima belas"
Terima kasih sebelumnya
Sat Nov 28, 2015 11:21 pm (PST) . Posted by:
"jhony.excel" jhony.excel
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
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��� �\
� �
Dp
10%��� �\
� �
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
============================================================
Pojok Lowongan Kerja yang disediakan milis :
http://milis-belajar-excel.1048464.n5.nabble.com/Pojok-Lowongan-Kerja-f5725753.html
*** Posting lowongan kerja : ke link tersebut dan klik New Topic
============================================================
bergabung ke milis (subscribe), kirim mail kosong ke: belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke: belajar-excel@yahoogroups.com
berkunjung ke web milis : http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran : http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di : http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe), kirim mail kosong ke : belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------
Pojok Lowongan Kerja yang disediakan milis :
http://milis-belajar-excel.1048464.n5.nabble.com/Pojok-Lowongan-Kerja-f5725753.html
*** Posting lowongan kerja : ke link tersebut dan klik New Topic
============================================================
bergabung ke milis (subscribe), kirim mail kosong ke: belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke: belajar-excel@yahoogroups.com
berkunjung ke web milis : http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran : http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di : http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe), kirim mail kosong ke : belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------
Tidak ada komentar:
Posting Komentar