Rabu, 09 Desember 2015

[belajar-excel] Digest Number 3678

11 Messages

Digest #3678

Messages

Tue Dec 8, 2015 3:23 am (PST) . Posted by:

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

Wa'alaikumussalam wr wb

hmmm....

i c...
pinjem cekrip copasan mas Nang...

> Cekrip yang bunyinya: Right(Sheets("Sheet1").Range("B1").Value,
> Len(Sheets("Sheet1").Range("B1").Value) - 4)
>
dan beberapa info terkait.

Sebaiknya di sheet bernama 'Sheet1' pada cells B1 diisi 12 saja, dengan
cara ketik angka 1 lalu angka 2 lalu tekan ENTER, supaya cells menyipan
data bertipe numerik. Plis... sempatkan belajar dan memahami datatype...
plis ya...

Kemudian, cells B1 di klik kanan -> pilih Format Cells -> klik tab Number
-> pilih opsi Custom -> di Textbox formatnya ditulis lengkap begini (copas
juga boleh) :
"Min "0
lalu tekan OK

Sekarang, cekrip yang bunyinya seperti di atas sana, yang bunyi begini :
Right(Sheets("Sheet1").Range("B1").Value,
Len(Sheets("Sheet1").Range("B1").Value) - 4)
diganti dengan :
Sheets("Sheet1").Range("B1").Value
Lalu, cells lain yang diperbandingkan dengan B1 ini, juga diambil dengan
cara yang sama, tapi disesuaikan alamat cells nya (ganti B1 dengan alamat
lain)
Jadi nanti bentuknya, kalau pakai IF di VBA :
if sheets("sheet1").range("b1").value > sheets("sheet1").range("alamat cell
lainnya disini").value then
'baris kode proses ketika B1 > cells lain
else
'baris kode proses ketika B1<= cells lain
endif

Dengan demikian, regional setting apapun akan diproses dengan benar karena
nilai yang disimpan cells bertipe numerik.

Tentang :
2. Kemudian saya mencoba dengan menggunakan TexBox dan Label pada UserForm,
>> Asumsi : Textbox untuk inputan user untuk nilai yang akan
diperbandingkan, dan Label untuk menampilkan isi B1 yang dibahas di atas
tadi.
>> di UserForm, baris untuk mengisi label nya memanfaatkan properti Text
milik si range, bunyinya begini (misal di Label bernama lblBatas)
lblBatas.caption=sheets("sheet1").range("b1").text
>> proses perbandingannya kalau pakai IF, adalah antara nilai (bertipe text
yang dikonversi menjadi bertipe numerik) dari textbox vs nilai B1 dari
sheet 'Sheet1'
*** Misal textbox bernama txtInput
'misal proses validasi input agar pasti berisi numerik disini
'jadi mulai baris ini, sudah pasti isi textbox bisa dikonversi menjadi
bertipe numerik
if sheets("sheet1").range("b1").value > cdbl( txtinput.text ) then
'baris kode proses ketika B1 > isian di textbox
else
'baris kode proses ketika B1<= isian di textbox
endif

Wassalamu'alaikum wr wb
Kid

2015-12-08 7:48 GMT+07:00 Nang Agus nangagus@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com>:

>
>
> Walaikumsalam warahmatullah
> Dear Haris,
>
> Cekrip yang bunyinya: Right(Sheets("Sheet1").Range("B1").Value,
> Len(Sheets("Sheet1").Range("B1").Value) - 4)
> menghasilkan data type text yang nilainya 12.0, sehingga berapapun
> angka yang dimasukkan dibandingkan degan text 12.0 akan selalu lebih
> kecil. untuk menyelesaikan masalah tersebut dapat dilakukan:
> 1. mengubah text tersebut menjadi angka dengan mengalikan 1
> Right(Sheets("Sheet1").Range("B1").Value,
> Len(Sheets("Sheet1").Range("B1").Value) - 4)*1
> 2. namun hasil dari perkalian di atas adalah 120, agar menjadi 12,0
> dapat dilakukan dengan mengubah isi cell B1 menjadi 12,0 di cellnya
> atau diubah dengan VBA.
>
> wasalamualaikum warahmatullah.
> Kenang Agus
>
> On 12/7/15, ris ha har1sn.excel@yahoo.com [belajar-excel]
> <belajar-excel@yahoogroups.com> wrote:
> > Assalamu'alaikum.
> >
> > Mohon bantuan pada para master semua. Saya punya kasus tetang
> membandingkan
> > Nilai. Misal Nilai dibatasi Min 10.0 dengan batas itu, jika nilai lebih
> > kecil dari batas maka akan keluar pesan.
> > Saya mencoba dengan 2 cara (sama2 dengan Macro),
> > 1. Saya membandingkan angka pada Cell dan hasilnya seperti yang
> diharapkan.
> >
> > 2. Kemudian saya mencoba dengan menggunakan TexBox dan Label pada
> UserForm,
> > tetapi hasilnya tidak sama dengan tes yg pertama. File terlampir
> >
> > Saya sudah mencari, alhamdulillah ada yang mendekati seperti kasus yang
> saya
> > hadapi di
> > Yahoo! Groups
> >
> > | |
> > | | | | | | | |
> > | Yahoo! GroupsDear Be-Excel, Saya memiliki script dimana fungsinya untuk
> > membandingkan nilai/angka pada jumlah pembelian dengan stok barang, tapi
> > punya kendala. |
> > | |
> > | View on groups.yahoo.com | Preview by Yahoo |
> > | |
> > | |
> >
> >
> > setelah saya utak utik seharian, g bisa. Mohon bantuannya kepada para
> master
> > semua atas solusi yang diberikan, semoga Allah Swt membalas dengan
> > berlimpahan kebaikan dan kemudahan segala urusan. Amin
> >
> > Salam
> > Haris
> >
>
>

Tue Dec 8, 2015 5:19 pm (PST) . Posted by:

"Nang Agus"

Dear Member BExcel,
Asalamualaikum warahmatullah,

Saya membuat cekrip sederhana untuk mengubah angka jam menjadi huruf,

16 Mei 2012 05:30:00

Pukul lima lewat dua puluh sembilan menit

12 April 2015 08:33:00

Pukul delapan lewat tiga puluh dua menit

13 April 2015 08:21:00

Pukul delapan lewat dua puluh menit

14 April 2015 08:39:00

Pukul delapan lewat tiga puluh sembilan menit

15 April 2015 08:17:00

Pukul delapan lewat enam belas menit

16 April 2015 08:02:00

Pukul delapan lewat satu menit

17 April 2015 08:40:00

Pukul delapan lewat tiga puluh sembilan menit

18 April 2015 08:02:00

Pukul delapan lewat satu menit

19 April 2015 08:05:00

Pukul delapan lewat empat menit

20 April 2015 08:42:00

Pukul sembilan kurang delapan belas menit

21 April 2015 08:55:00

Pukul sembilan kurang lima menit

namun ada kesalahan kecil, yaitu hasilnya tidak cocok. dimanakah perubahan
cekripnya agar sesuai dengan hasil?
Option Explicit
Function ejam(y As Double) As String
Dim a As Double
Dim h As Double
Dim m As Double
a = y - Int(y)
h = Int(a * 24)
m = Int((a * 24 - Int(a * 24)) * 60)
If m < 40 Then
If m = 0 Then
ejam = "Pukul " & angka(h)
Exit Function
Else
End If
ejam = "Pukul " & angka(h) & " lewat " & angka(m) & " menit"
Else
ejam = "Pukul " & angka(h + 1) & " kurang " & angka(60 - m) & " menit"
End If
End Function

Function angka(x As Double) As String
Dim p As Double
Dim s As Double
Dim kuruf(9)
kuruf(1) = "satu"
kuruf(2) = "dua"
kuruf(3) = "tiga"
kuruf(4) = "empat "
kuruf(5) = "lima "
kuruf(6) = "enam "
kuruf(7) = "tujuh "
kuruf(8) = "delapan "
kuruf(9) = "sembilan "
p = Int(x / 10)
s = x - p * 10
If x = 0 Then
angka = "nol"
Exit Function
Else
End If
If p = 1 Then
If s = 1 Then
angka = "sebelas"
Exit Function
Else
If s = 0 Then
angka = "sepuluh"
Exit Function
Else
End If
angka = kuruf(s) & " belas"
Exit Function
End If
Else
If p = 0 Then
angka = kuruf(s)
Else
angka = kuruf(p) & " puluh " & kuruf(s)
End If
End If
End Function

walaikumsalam warahmatullah.
Agus

2015-12-01 23:31 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com>:

>
>
> Wa'alaikumussalam wr wb
>
> Coba file yang ada disini <https://app.box.com/s/gefh85lon4avu9n66ifm>.
>
> Wassalamu'alaikum wr wb
> Kid
>
>
>
>
>
>
>
> 2015-11-28 22:11 GMT+07:00 zainal_abidinm@yahoo.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>>
>>
>> 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
>>
>
>
>

Tue Dec 8, 2015 6:46 pm (PST) . Posted by:

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

Wa'alaikumussalam wr wb

mas Nang,

Ngobrolin tentang waktu ya...
Tipe datanya adalah datetime. Di VB/VBA bertipe date.
Nilai serial tanggal yang menyertakan sisi wakt memang bisa disiman juga
dalam tipe data double.

Jadi, bagian : (optional, tetapi bisa jadi akan bermanfaat)
Function ejam(y As Double) As String
tipedatanya bisa diganti menjadi Date atau dibiarkan tetap Double.
Perbedaannya yang mudah tampak adalah respon UDF terhadap nilai yang
di-input-ken. Tipe data Date di VB/VBA 6 atau VBA 7 akan menerima nilai
numerik serial date saja, yaitu dari serial date tanggal 0100-01-01 sampai
9999-12-31. Sedangkan Double akan menerima nilai numerik dengan rentang
yang lebih lebar, bisa sampai e300-an.
Ketika sebuah function diberi nilai inputan yang diluar interval datatype
nya, makan akan segera mengembalikan error value #NUM! (sebagai hasil,
tanpa mengerjakan baris kode apapun yang ada di dalam function).

Ketika mengolah data yang sejatinya berupa nilai waktu (sisi tanggal saja,
sisi jam saja, ataupun kedua sisinya), akan lebih konsisten tepat jika
diolah dalam tipe data Date dan memanfaatkan fungsi-fungsi yang khusus
mengolah data bertipe date dibanding dengan menggunakan yang lainnya.
Misalnya, ingin mendapatkan nilai tahun, maka gunakan fungsi Year. Karena
fungsi Year menghasilkan data bertipe Integer, maka variabel penyimpannya
juga bertipe integer.

Cara tersebut di atas akan lebih konsisten tepat dibanding dengan komputasi
matematis dengan nilai-nilai yang masih disimpan dalam datatype double.

Jadi, bagian :
Dim h As Double
Dim m As Double
diubah saja agar menjadi bertipe integer. Nilai jam dan menit dapat
ditampung oleh datatype integer. Menggunakan *Long akan lebih baik*, karena
konon untuk aplikasi 32 bit akan lebih cepat menggunakan tipe data Long,
karena di dalam VBA, tipe data integer akan disimpan dalam ruang memory
seluas ruang untuk datatype Long. Justru kalau menggunakan datatype
integer, maka akan ada proses tambahan untuk mengubahnya menjadi Long,
tetapi hanya tetap menyimpan interval nilai yang sempit.

Kemudian, nilai jam dan menit, diperoleh dengan fungsi Hour dan Minute saja.
h=hour(y)
m=minute(y)
Hal ini akan lebih konsisten tepat. Apalagi jika y bertipe Date. Jadi, saat
mengambil nilai jam dan menit ini tidak dipengaruhi oleh tipe data nya h
dan m.
Proses selanjutnya yang akan menggunakan variabel h dan m yang akan
dipengaruhi oleh tipe data.

Kayanya, perbaikan bagian itu bisa dicoba lebih dulu. Jika hasilnya masih
keliru, berarti ada bagian kode setelah pengambilan nilai jam dan menit
yang kurang sesuai, dan membutuhkan cek baris-per-baris kode.
Moga-moga dengan perbaikan di atas jadi ndak perlu cek baris-per-baris kode
ya

Wassalamu'alaikum wr wb
Kid.

2015-12-09 8:19 GMT+07:00 Nang Agus nangagus@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com>:

>
>
> Dear Member BExcel,
> Asalamualaikum warahmatullah,
>
> Saya membuat cekrip sederhana untuk mengubah angka jam menjadi huruf,
>
> 16 Mei 2012 05:30:00
>
> Pukul lima lewat dua puluh sembilan menit
>
> 12 April 2015 08:33:00
>
> Pukul delapan lewat tiga puluh dua menit
>
> 13 April 2015 08:21:00
>
> Pukul delapan lewat dua puluh menit
>
> 14 April 2015 08:39:00
>
> Pukul delapan lewat tiga puluh sembilan menit
>
> 15 April 2015 08:17:00
>
> Pukul delapan lewat enam belas menit
>
> 16 April 2015 08:02:00
>
> Pukul delapan lewat satu menit
>
> 17 April 2015 08:40:00
>
> Pukul delapan lewat tiga puluh sembilan menit
>
> 18 April 2015 08:02:00
>
> Pukul delapan lewat satu menit
>
> 19 April 2015 08:05:00
>
> Pukul delapan lewat empat menit
>
> 20 April 2015 08:42:00
>
> Pukul sembilan kurang delapan belas menit
>
> 21 April 2015 08:55:00
>
> Pukul sembilan kurang lima menit
>
>
> namun ada kesalahan kecil, yaitu hasilnya tidak cocok. dimanakah perubahan
> cekripnya agar sesuai dengan hasil?
> Option Explicit
> Function ejam(y As Double) As String
> Dim a As Double
> Dim h As Double
> Dim m As Double
> a = y - Int(y)
> h = Int(a * 24)
> m = Int((a * 24 - Int(a * 24)) * 60)
> If m < 40 Then
> If m = 0 Then
> ejam = "Pukul " & angka(h)
> Exit Function
> Else
> End If
> ejam = "Pukul " & angka(h) & " lewat " & angka(m) & " menit"
> Else
> ejam = "Pukul " & angka(h + 1) & " kurang " & angka(60 - m) & " menit"
> End If
> End Function
>
>
> Function angka(x As Double) As String
> Dim p As Double
> Dim s As Double
> Dim kuruf(9)
> kuruf(1) = "satu"
> kuruf(2) = "dua"
> kuruf(3) = "tiga"
> kuruf(4) = "empat "
> kuruf(5) = "lima "
> kuruf(6) = "enam "
> kuruf(7) = "tujuh "
> kuruf(8) = "delapan "
> kuruf(9) = "sembilan "
> p = Int(x / 10)
> s = x - p * 10
> If x = 0 Then
> angka = "nol"
> Exit Function
> Else
> End If
> If p = 1 Then
> If s = 1 Then
> angka = "sebelas"
> Exit Function
> Else
> If s = 0 Then
> angka = "sepuluh"
> Exit Function
> Else
> End If
> angka = kuruf(s) & " belas"
> Exit Function
> End If
> Else
> If p = 0 Then
> angka = kuruf(s)
> Else
> angka = kuruf(p) & " puluh " & kuruf(s)
> End If
> End If
> End Function
>
> walaikumsalam warahmatullah.
> Agus
>
> 2015-12-01 23:31 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>>
>>
>> Wa'alaikumussalam wr wb
>>
>> Coba file yang ada disini <https://app.box.com/s/gefh85lon4avu9n66ifm>.
>>
>> Wassalamu'alaikum wr wb
>> Kid
>>
>>
>>
>>
>>
>>
>>
>> 2015-11-28 22:11 GMT+07:00 zainal_abidinm@yahoo.com [belajar-excel] <
>> belajar-excel@yahoogroups.com>:
>>
>>>
>>>
>>> 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
>>>
>>
>>
>
>

Tue Dec 8, 2015 7:31 pm (PST) . Posted by:

"Nang Agus"

Asalamualaikum warahmatullah.
Mas Kid,
sudah selesai sesuai keinginan berdasarkan petunjuk yang diberikan.
terima kasih.
wasalamualaikum warahmatullah.
Thole Agus

2015-12-09 9:46 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com>:

>
>
> Wa'alaikumussalam wr wb
>
> mas Nang,
>
> Ngobrolin tentang waktu ya...
> Tipe datanya adalah datetime. Di VB/VBA bertipe date.
> Nilai serial tanggal yang menyertakan sisi wakt memang bisa disiman juga
> dalam tipe data double.
>
> Jadi, bagian : (optional, tetapi bisa jadi akan bermanfaat)
> Function ejam(y As Double) As String
> tipedatanya bisa diganti menjadi Date atau dibiarkan tetap Double.
> Perbedaannya yang mudah tampak adalah respon UDF terhadap nilai yang
> di-input-ken. Tipe data Date di VB/VBA 6 atau VBA 7 akan menerima nilai
> numerik serial date saja, yaitu dari serial date tanggal 0100-01-01 sampai
> 9999-12-31. Sedangkan Double akan menerima nilai numerik dengan rentang
> yang lebih lebar, bisa sampai e300-an.
> Ketika sebuah function diberi nilai inputan yang diluar interval datatype
> nya, makan akan segera mengembalikan error value #NUM! (sebagai hasil,
> tanpa mengerjakan baris kode apapun yang ada di dalam function).
>
> Ketika mengolah data yang sejatinya berupa nilai waktu (sisi tanggal saja,
> sisi jam saja, ataupun kedua sisinya), akan lebih konsisten tepat jika
> diolah dalam tipe data Date dan memanfaatkan fungsi-fungsi yang khusus
> mengolah data bertipe date dibanding dengan menggunakan yang lainnya.
> Misalnya, ingin mendapatkan nilai tahun, maka gunakan fungsi Year. Karena
> fungsi Year menghasilkan data bertipe Integer, maka variabel penyimpannya
> juga bertipe integer.
>
> Cara tersebut di atas akan lebih konsisten tepat dibanding dengan
> komputasi matematis dengan nilai-nilai yang masih disimpan dalam datatype
> double.
>
> Jadi, bagian :
> Dim h As Double
> Dim m As Double
> diubah saja agar menjadi bertipe integer. Nilai jam dan menit dapat
> ditampung oleh datatype integer. Menggunakan *Long akan lebih baik*,
> karena konon untuk aplikasi 32 bit akan lebih cepat menggunakan tipe data
> Long, karena di dalam VBA, tipe data integer akan disimpan dalam ruang
> memory seluas ruang untuk datatype Long. Justru kalau menggunakan datatype
> integer, maka akan ada proses tambahan untuk mengubahnya menjadi Long,
> tetapi hanya tetap menyimpan interval nilai yang sempit.
>
> Kemudian, nilai jam dan menit, diperoleh dengan fungsi Hour dan Minute
> saja.
> h=hour(y)
> m=minute(y)
> Hal ini akan lebih konsisten tepat. Apalagi jika y bertipe Date. Jadi,
> saat mengambil nilai jam dan menit ini tidak dipengaruhi oleh tipe data nya
> h dan m.
> Proses selanjutnya yang akan menggunakan variabel h dan m yang akan
> dipengaruhi oleh tipe data.
>
> Kayanya, perbaikan bagian itu bisa dicoba lebih dulu. Jika hasilnya masih
> keliru, berarti ada bagian kode setelah pengambilan nilai jam dan menit
> yang kurang sesuai, dan membutuhkan cek baris-per-baris kode.
> Moga-moga dengan perbaikan di atas jadi ndak perlu cek baris-per-baris
> kode ya
>
> Wassalamu'alaikum wr wb
> Kid.
>
>
>
>
> 2015-12-09 8:19 GMT+07:00 Nang Agus nangagus@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>>
>>
>> Dear Member BExcel,
>> Asalamualaikum warahmatullah,
>>
>> Saya membuat cekrip sederhana untuk mengubah angka jam menjadi huruf,
>>
>> 16 Mei 2012 05:30:00
>>
>> Pukul lima lewat dua puluh sembilan menit
>>
>> 12 April 2015 08:33:00
>>
>> Pukul delapan lewat tiga puluh dua menit
>>
>> 13 April 2015 08:21:00
>>
>> Pukul delapan lewat dua puluh menit
>>
>> 14 April 2015 08:39:00
>>
>> Pukul delapan lewat tiga puluh sembilan menit
>>
>> 15 April 2015 08:17:00
>>
>> Pukul delapan lewat enam belas menit
>>
>> 16 April 2015 08:02:00
>>
>> Pukul delapan lewat satu menit
>>
>> 17 April 2015 08:40:00
>>
>> Pukul delapan lewat tiga puluh sembilan menit
>>
>> 18 April 2015 08:02:00
>>
>> Pukul delapan lewat satu menit
>>
>> 19 April 2015 08:05:00
>>
>> Pukul delapan lewat empat menit
>>
>> 20 April 2015 08:42:00
>>
>> Pukul sembilan kurang delapan belas menit
>>
>> 21 April 2015 08:55:00
>>
>> Pukul sembilan kurang lima menit
>>
>>
>> namun ada kesalahan kecil, yaitu hasilnya tidak cocok. dimanakah
>> perubahan cekripnya agar sesuai dengan hasil?
>> Option Explicit
>> Function ejam(y As Double) As String
>> Dim a As Double
>> Dim h As Double
>> Dim m As Double
>> a = y - Int(y)
>> h = Int(a * 24)
>> m = Int((a * 24 - Int(a * 24)) * 60)
>> If m < 40 Then
>> If m = 0 Then
>> ejam = "Pukul " & angka(h)
>> Exit Function
>> Else
>> End If
>> ejam = "Pukul " & angka(h) & " lewat " & angka(m) & " menit"
>> Else
>> ejam = "Pukul " & angka(h + 1) & " kurang " & angka(60 - m) & " menit"
>> End If
>> End Function
>>
>>
>> Function angka(x As Double) As String
>> Dim p As Double
>> Dim s As Double
>> Dim kuruf(9)
>> kuruf(1) = "satu"
>> kuruf(2) = "dua"
>> kuruf(3) = "tiga"
>> kuruf(4) = "empat "
>> kuruf(5) = "lima "
>> kuruf(6) = "enam "
>> kuruf(7) = "tujuh "
>> kuruf(8) = "delapan "
>> kuruf(9) = "sembilan "
>> p = Int(x / 10)
>> s = x - p * 10
>> If x = 0 Then
>> angka = "nol"
>> Exit Function
>> Else
>> End If
>> If p = 1 Then
>> If s = 1 Then
>> angka = "sebelas"
>> Exit Function
>> Else
>> If s = 0 Then
>> angka = "sepuluh"
>> Exit Function
>> Else
>> End If
>> angka = kuruf(s) & " belas"
>> Exit Function
>> End If
>> Else
>> If p = 0 Then
>> angka = kuruf(s)
>> Else
>> angka = kuruf(p) & " puluh " & kuruf(s)
>> End If
>> End If
>> End Function
>>
>> walaikumsalam warahmatullah.
>> Agus
>>
>> 2015-12-01 23:31 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
>> belajar-excel@yahoogroups.com>:
>>
>>>
>>>
>>> Wa'alaikumussalam wr wb
>>>
>>> Coba file yang ada disini <https://app.box.com/s/gefh85lon4avu9n66ifm>.
>>>
>>> Wassalamu'alaikum wr wb
>>> Kid
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> 2015-11-28 22:11 GMT+07:00 zainal_abidinm@yahoo.com [belajar-excel] <
>>> belajar-excel@yahoogroups.com>:
>>>
>>>>
>>>>
>>>> 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
>>>>
>>>
>>>
>>
>
>

Tue Dec 8, 2015 7:49 pm (PST) . Posted by:

"Subroto, Matzen"

Assalamu alaikum,

Pak Agus,

Bisa di share ga filenya yang sudah okeh

Wassalam
Terima Kasih

Matzen




From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: 09 Desember 2015 10:31
To: BExcel
Subject: Re: [belajar-excel] (Help) Cara merubah jam menjadi teks


Asalamualaikum warahmatullah.
Mas Kid,
sudah selesai sesuai keinginan berdasarkan petunjuk yang diberikan.
terima kasih.
wasalamualaikum warahmatullah.
Thole Agus

2015-12-09 9:46 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com<mailto:mr.nmkid@gmail.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Wa'alaikumussalam wr wb
mas Nang,
Ngobrolin tentang waktu ya...
Tipe datanya adalah datetime. Di VB/VBA bertipe date.
Nilai serial tanggal yang menyertakan sisi wakt memang bisa disiman juga dalam tipe data double.
Jadi, bagian : (optional, tetapi bisa jadi akan bermanfaat)
Function ejam(y As Double) As String
tipedatanya bisa diganti menjadi Date atau dibiarkan tetap Double.
Perbedaannya yang mudah tampak adalah respon UDF terhadap nilai yang di-input-ken. Tipe data Date di VB/VBA 6 atau VBA 7 akan menerima nilai numerik serial date saja, yaitu dari serial date tanggal 0100-01-01 sampai 9999-12-31. Sedangkan Double akan menerima nilai numerik dengan rentang yang lebih lebar, bisa sampai e300-an.
Ketika sebuah function diberi nilai inputan yang diluar interval datatype nya, makan akan segera mengembalikan error value #NUM! (sebagai hasil, tanpa mengerjakan baris kode apapun yang ada di dalam function).
Ketika mengolah data yang sejatinya berupa nilai waktu (sisi tanggal saja, sisi jam saja, ataupun kedua sisinya), akan lebih konsisten tepat jika diolah dalam tipe data Date dan memanfaatkan fungsi-fungsi yang khusus mengolah data bertipe date dibanding dengan menggunakan yang lainnya.
Misalnya, ingin mendapatkan nilai tahun, maka gunakan fungsi Year. Karena fungsi Year menghasilkan data bertipe Integer, maka variabel penyimpannya juga bertipe integer.

Cara tersebut di atas akan lebih konsisten tepat dibanding dengan komputasi matematis dengan nilai-nilai yang masih disimpan dalam datatype double.
Jadi, bagian :
Dim h As Double
Dim m As Double
diubah saja agar menjadi bertipe integer. Nilai jam dan menit dapat ditampung oleh datatype integer. Menggunakan Long akan lebih baik, karena konon untuk aplikasi 32 bit akan lebih cepat menggunakan tipe data Long, karena di dalam VBA, tipe data integer akan disimpan dalam ruang memory seluas ruang untuk datatype Long. Justru kalau menggunakan datatype integer, maka akan ada proses tambahan untuk mengubahnya menjadi Long, tetapi hanya tetap menyimpan interval nilai yang sempit.

Kemudian, nilai jam dan menit, diperoleh dengan fungsi Hour dan Minute saja.
h=hour(y)
m=minute(y)
Hal ini akan lebih konsisten tepat. Apalagi jika y bertipe Date. Jadi, saat mengambil nilai jam dan menit ini tidak dipengaruhi oleh tipe data nya h dan m.
Proses selanjutnya yang akan menggunakan variabel h dan m yang akan dipengaruhi oleh tipe data.

Kayanya, perbaikan bagian itu bisa dicoba lebih dulu. Jika hasilnya masih keliru, berarti ada bagian kode setelah pengambilan nilai jam dan menit yang kurang sesuai, dan membutuhkan cek baris-per-baris kode.
Moga-moga dengan perbaikan di atas jadi ndak perlu cek baris-per-baris kode ya

Wassalamu'alaikum wr wb
Kid.



2015-12-09 8:19 GMT+07:00 Nang Agus nangagus@gmail.com<mailto:nangagus@gmail.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Dear Member BExcel,
Asalamualaikum warahmatullah,
Saya membuat cekrip sederhana untuk mengubah angka jam menjadi huruf,
16 Mei 2012 05:30:00

Pukul lima lewat dua puluh sembilan menit

12 April 2015 08:33:00

Pukul delapan lewat tiga puluh dua menit

13 April 2015 08:21:00

Pukul delapan lewat dua puluh menit

14 April 2015 08:39:00

Pukul delapan lewat tiga puluh sembilan menit

15 April 2015 08:17:00

Pukul delapan lewat enam belas menit

16 April 2015 08:02:00

Pukul delapan lewat satu menit

17 April 2015 08:40:00

Pukul delapan lewat tiga puluh sembilan menit

18 April 2015 08:02:00

Pukul delapan lewat satu menit

19 April 2015 08:05:00

Pukul delapan lewat empat menit

20 April 2015 08:42:00

Pukul sembilan kurang delapan belas menit

21 April 2015 08:55:00

Pukul sembilan kurang lima menit


namun ada kesalahan kecil, yaitu hasilnya tidak cocok. dimanakah perubahan cekripnya agar sesuai dengan hasil?
Option Explicit
Function ejam(y As Double) As String
Dim a As Double
Dim h As Double
Dim m As Double
a = y - Int(y)
h = Int(a * 24)
m = Int((a * 24 - Int(a * 24)) * 60)
If m < 40 Then
If m = 0 Then
ejam = "Pukul " & angka(h)
Exit Function
Else
End If
ejam = "Pukul " & angka(h) & " lewat " & angka(m) & " menit"
Else
ejam = "Pukul " & angka(h + 1) & " kurang " & angka(60 - m) & " menit"
End If
End Function


Function angka(x As Double) As String
Dim p As Double
Dim s As Double
Dim kuruf(9)
kuruf(1) = "satu"
kuruf(2) = "dua"
kuruf(3) = "tiga"
kuruf(4) = "empat "
kuruf(5) = "lima "
kuruf(6) = "enam "
kuruf(7) = "tujuh "
kuruf(8) = "delapan "
kuruf(9) = "sembilan "
p = Int(x / 10)
s = x - p * 10
If x = 0 Then
angka = "nol"
Exit Function
Else
End If
If p = 1 Then
If s = 1 Then
angka = "sebelas"
Exit Function
Else
If s = 0 Then
angka = "sepuluh"
Exit Function
Else
End If
angka = kuruf(s) & " belas"
Exit Function
End If
Else
If p = 0 Then
angka = kuruf(s)
Else
angka = kuruf(p) & " puluh " & kuruf(s)
End If
End If
End Function
walaikumsalam warahmatullah.
Agus

2015-12-01 23:31 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com<mailto:mr.nmkid@gmail.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Wa'alaikumussalam wr wb
Coba file yang ada disini<https://app.box.com/s/gefh85lon4avu9n66ifm>.
Wassalamu'alaikum wr wb
Kid





2015-11-28 22:11 GMT+07:00 zainal_abidinm@yahoo.com<mailto:zainal_abidinm@yahoo.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:


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






__________________________________________________________
This email has been scanned by AkzoNobel for Viruses and Spam.
For more information please contact your local IT Service Desk.
__________________________________________________________

Tue Dec 8, 2015 7:54 pm (PST) . Posted by:

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

hehehe...
sabar ya...

biasanya, mas Nang mau share kok.

sekarang lagi dibagusin dulu.
dikasih keterangan misalnya

2015-12-09 10:49 GMT+07:00 'Subroto, Matzen' matzen.subroto@akzonobel.com
[belajar-excel] <belajar-excel@yahoogroups.com>:

>
>
> Assalamu alaikum,
>
>
>
> Pak Agus,
>
>
>
> Bisa di share ga filenya yang sudah okeh
>
>
>
> Wassalam
>
> *Terima Kasih*
>
>
>
> *Matzen*
>
>
>
>
>
>
>
>
>
> *From:* belajar-excel@yahoogroups.com [mailto:
> belajar-excel@yahoogroups.com]
> *Sent:* 09 Desember 2015 10:31
> *To:* BExcel
> *Subject:* Re: [belajar-excel] (Help) Cara merubah jam menjadi teks
>
>
>
>
>
> Asalamualaikum warahmatullah.
>
> Mas Kid,
>
> sudah selesai sesuai keinginan berdasarkan petunjuk yang diberikan.
>
> terima kasih.
>
> wasalamualaikum warahmatullah.
>
> Thole Agus
>
>
>
> 2015-12-09 9:46 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
>
> Wa'alaikumussalam wr wb
>
> mas Nang,
>
> Ngobrolin tentang waktu ya...
>
> Tipe datanya adalah datetime. Di VB/VBA bertipe date.
>
> Nilai serial tanggal yang menyertakan sisi wakt memang bisa disiman juga
> dalam tipe data double.
>
> Jadi, bagian : (optional, tetapi bisa jadi akan bermanfaat)
>
> Function ejam(y As Double) As String
>
> tipedatanya bisa diganti menjadi Date atau dibiarkan tetap Double.
>
> Perbedaannya yang mudah tampak adalah respon UDF terhadap nilai yang
> di-input-ken. Tipe data Date di VB/VBA 6 atau VBA 7 akan menerima nilai
> numerik serial date saja, yaitu dari serial date tanggal 0100-01-01 sampai
> 9999-12-31. Sedangkan Double akan menerima nilai numerik dengan rentang
> yang lebih lebar, bisa sampai e300-an.
>
> Ketika sebuah function diberi nilai inputan yang diluar interval datatype
> nya, makan akan segera mengembalikan error value #NUM! (sebagai hasil,
> tanpa mengerjakan baris kode apapun yang ada di dalam function).
>
> Ketika mengolah data yang sejatinya berupa nilai waktu (sisi tanggal saja,
> sisi jam saja, ataupun kedua sisinya), akan lebih konsisten tepat jika
> diolah dalam tipe data Date dan memanfaatkan fungsi-fungsi yang khusus
> mengolah data bertipe date dibanding dengan menggunakan yang lainnya.
>
> Misalnya, ingin mendapatkan nilai tahun, maka gunakan fungsi Year. Karena
> fungsi Year menghasilkan data bertipe Integer, maka variabel penyimpannya
> juga bertipe integer.
>
>
>
> Cara tersebut di atas akan lebih konsisten tepat dibanding dengan
> komputasi matematis dengan nilai-nilai yang masih disimpan dalam datatype
> double.
>
> Jadi, bagian :
>
> Dim h As Double
> Dim m As Double
>
> diubah saja agar menjadi bertipe integer. Nilai jam dan menit dapat
> ditampung oleh datatype integer. Menggunakan *Long akan lebih baik*,
> karena konon untuk aplikasi 32 bit akan lebih cepat menggunakan tipe data
> Long, karena di dalam VBA, tipe data integer akan disimpan dalam ruang
> memory seluas ruang untuk datatype Long. Justru kalau menggunakan datatype
> integer, maka akan ada proses tambahan untuk mengubahnya menjadi Long,
> tetapi hanya tetap menyimpan interval nilai yang sempit.
>
>
>
> Kemudian, nilai jam dan menit, diperoleh dengan fungsi Hour dan Minute
> saja.
>
> h=hour(y)
>
> m=minute(y)
>
> Hal ini akan lebih konsisten tepat. Apalagi jika y bertipe Date. Jadi,
> saat mengambil nilai jam dan menit ini tidak dipengaruhi oleh tipe data nya
> h dan m.
>
> Proses selanjutnya yang akan menggunakan variabel h dan m yang akan
> dipengaruhi oleh tipe data.
>
>
>
> Kayanya, perbaikan bagian itu bisa dicoba lebih dulu. Jika hasilnya masih
> keliru, berarti ada bagian kode setelah pengambilan nilai jam dan menit
> yang kurang sesuai, dan membutuhkan cek baris-per-baris kode.
>
> Moga-moga dengan perbaikan di atas jadi ndak perlu cek baris-per-baris
> kode ya
>
>
>
> Wassalamu'alaikum wr wb
>
> Kid.
>
>
>
>
>
> 2015-12-09 8:19 GMT+07:00 Nang Agus nangagus@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
>
> Dear Member BExcel,
>
> Asalamualaikum warahmatullah,
>
> Saya membuat cekrip sederhana untuk mengubah angka jam menjadi huruf,
>
> 16 Mei 2012 05:30:00
>
> Pukul lima lewat dua puluh sembilan menit
>
> 12 April 2015 08:33:00
>
> Pukul delapan lewat tiga puluh dua menit
>
> 13 April 2015 08:21:00
>
> Pukul delapan lewat dua puluh menit
>
> 14 April 2015 08:39:00
>
> Pukul delapan lewat tiga puluh sembilan menit
>
> 15 April 2015 08:17:00
>
> Pukul delapan lewat enam belas menit
>
> 16 April 2015 08:02:00
>
> Pukul delapan lewat satu menit
>
> 17 April 2015 08:40:00
>
> Pukul delapan lewat tiga puluh sembilan menit
>
> 18 April 2015 08:02:00
>
> Pukul delapan lewat satu menit
>
> 19 April 2015 08:05:00
>
> Pukul delapan lewat empat menit
>
> 20 April 2015 08:42:00
>
> Pukul sembilan kurang delapan belas menit
>
> 21 April 2015 08:55:00
>
> Pukul sembilan kurang lima menit
>
>
>
> namun ada kesalahan kecil, yaitu hasilnya tidak cocok. dimanakah perubahan
> cekripnya agar sesuai dengan hasil?
> Option Explicit
> Function ejam(y As Double) As String
> Dim a As Double
> Dim h As Double
> Dim m As Double
> a = y - Int(y)
> h = Int(a * 24)
> m = Int((a * 24 - Int(a * 24)) * 60)
> If m < 40 Then
> If m = 0 Then
> ejam = "Pukul " & angka(h)
> Exit Function
> Else
> End If
> ejam = "Pukul " & angka(h) & " lewat " & angka(m) & " menit"
> Else
> ejam = "Pukul " & angka(h + 1) & " kurang " & angka(60 - m) & " menit"
> End If
> End Function
>
>
> Function angka(x As Double) As String
> Dim p As Double
> Dim s As Double
> Dim kuruf(9)
> kuruf(1) = "satu"
> kuruf(2) = "dua"
> kuruf(3) = "tiga"
> kuruf(4) = "empat "
> kuruf(5) = "lima "
> kuruf(6) = "enam "
> kuruf(7) = "tujuh "
> kuruf(8) = "delapan "
> kuruf(9) = "sembilan "
> p = Int(x / 10)
> s = x - p * 10
> If x = 0 Then
> angka = "nol"
> Exit Function
> Else
> End If
> If p = 1 Then
> If s = 1 Then
> angka = "sebelas"
> Exit Function
> Else
> If s = 0 Then
> angka = "sepuluh"
> Exit Function
> Else
> End If
> angka = kuruf(s) & " belas"
> Exit Function
> End If
> Else
> If p = 0 Then
> angka = kuruf(s)
> Else
> angka = kuruf(p) & " puluh " & kuruf(s)
> End If
> End If
> End Function
>
> walaikumsalam warahmatullah.
>
> Agus
>
>
>
> 2015-12-01 23:31 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
>
> Wa'alaikumussalam wr wb
>
> Coba file yang ada disini <https://app.box.com/s/gefh85lon4avu9n66ifm>.
>
> Wassalamu'alaikum wr wb
>
> Kid
>
>
>
>
>
>
>
> 2015-11-28 22:11 GMT+07:00 zainal_abidinm@yahoo.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
>
> 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
>
>
>
>
>
>
>
>
>
>
>
> __________________________________________________________
> This email has been scanned by AkzoNobel for Viruses and Spam.
> For more information please contact your local IT Service Desk.
>
> __________________________________________________________
>
>
>

Tue Dec 8, 2015 7:56 pm (PST) . Posted by:

"Subroto, Matzen"

Siap....

Barokallohu lakum..


From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: 09 Desember 2015 10:54
To: BeExcel
Subject: Re: [belajar-excel] (Help) Cara merubah jam menjadi teks


hehehe...
sabar ya...
biasanya, mas Nang mau share kok.
sekarang lagi dibagusin dulu.
dikasih keterangan misalnya





2015-12-09 10:49 GMT+07:00 'Subroto, Matzen' matzen.subroto@akzonobel.com<mailto:matzen.subroto@akzonobel.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Assalamu alaikum,

Pak Agus,

Bisa di share ga filenya yang sudah okeh

Wassalam
Terima Kasih

Matzen




From: belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com> [mailto:belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>]
Sent: 09 Desember 2015 10:31
To: BExcel
Subject: Re: [belajar-excel] (Help) Cara merubah jam menjadi teks


Asalamualaikum warahmatullah.
Mas Kid,
sudah selesai sesuai keinginan berdasarkan petunjuk yang diberikan.
terima kasih.
wasalamualaikum warahmatullah.
Thole Agus

2015-12-09 9:46 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com<mailto:mr.nmkid@gmail.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Wa'alaikumussalam wr wb
mas Nang,
Ngobrolin tentang waktu ya...
Tipe datanya adalah datetime. Di VB/VBA bertipe date.
Nilai serial tanggal yang menyertakan sisi wakt memang bisa disiman juga dalam tipe data double.
Jadi, bagian : (optional, tetapi bisa jadi akan bermanfaat)
Function ejam(y As Double) As String
tipedatanya bisa diganti menjadi Date atau dibiarkan tetap Double.
Perbedaannya yang mudah tampak adalah respon UDF terhadap nilai yang di-input-ken. Tipe data Date di VB/VBA 6 atau VBA 7 akan menerima nilai numerik serial date saja, yaitu dari serial date tanggal 0100-01-01 sampai 9999-12-31. Sedangkan Double akan menerima nilai numerik dengan rentang yang lebih lebar, bisa sampai e300-an.
Ketika sebuah function diberi nilai inputan yang diluar interval datatype nya, makan akan segera mengembalikan error value #NUM! (sebagai hasil, tanpa mengerjakan baris kode apapun yang ada di dalam function).
Ketika mengolah data yang sejatinya berupa nilai waktu (sisi tanggal saja, sisi jam saja, ataupun kedua sisinya), akan lebih konsisten tepat jika diolah dalam tipe data Date dan memanfaatkan fungsi-fungsi yang khusus mengolah data bertipe date dibanding dengan menggunakan yang lainnya.
Misalnya, ingin mendapatkan nilai tahun, maka gunakan fungsi Year. Karena fungsi Year menghasilkan data bertipe Integer, maka variabel penyimpannya juga bertipe integer.

Cara tersebut di atas akan lebih konsisten tepat dibanding dengan komputasi matematis dengan nilai-nilai yang masih disimpan dalam datatype double.
Jadi, bagian :
Dim h As Double
Dim m As Double
diubah saja agar menjadi bertipe integer. Nilai jam dan menit dapat ditampung oleh datatype integer. Menggunakan Long akan lebih baik, karena konon untuk aplikasi 32 bit akan lebih cepat menggunakan tipe data Long, karena di dalam VBA, tipe data integer akan disimpan dalam ruang memory seluas ruang untuk datatype Long. Justru kalau menggunakan datatype integer, maka akan ada proses tambahan untuk mengubahnya menjadi Long, tetapi hanya tetap menyimpan interval nilai yang sempit.

Kemudian, nilai jam dan menit, diperoleh dengan fungsi Hour dan Minute saja.
h=hour(y)
m=minute(y)
Hal ini akan lebih konsisten tepat. Apalagi jika y bertipe Date. Jadi, saat mengambil nilai jam dan menit ini tidak dipengaruhi oleh tipe data nya h dan m.
Proses selanjutnya yang akan menggunakan variabel h dan m yang akan dipengaruhi oleh tipe data.

Kayanya, perbaikan bagian itu bisa dicoba lebih dulu. Jika hasilnya masih keliru, berarti ada bagian kode setelah pengambilan nilai jam dan menit yang kurang sesuai, dan membutuhkan cek baris-per-baris kode.
Moga-moga dengan perbaikan di atas jadi ndak perlu cek baris-per-baris kode ya

Wassalamu'alaikum wr wb
Kid.


2015-12-09 8:19 GMT+07:00 Nang Agus nangagus@gmail.com<mailto:nangagus@gmail.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Dear Member BExcel,
Asalamualaikum warahmatullah,
Saya membuat cekrip sederhana untuk mengubah angka jam menjadi huruf,
16 Mei 2012 05:30:00

Pukul lima lewat dua puluh sembilan menit

12 April 2015 08:33:00

Pukul delapan lewat tiga puluh dua menit

13 April 2015 08:21:00

Pukul delapan lewat dua puluh menit

14 April 2015 08:39:00

Pukul delapan lewat tiga puluh sembilan menit

15 April 2015 08:17:00

Pukul delapan lewat enam belas menit

16 April 2015 08:02:00

Pukul delapan lewat satu menit

17 April 2015 08:40:00

Pukul delapan lewat tiga puluh sembilan menit

18 April 2015 08:02:00

Pukul delapan lewat satu menit

19 April 2015 08:05:00

Pukul delapan lewat empat menit

20 April 2015 08:42:00

Pukul sembilan kurang delapan belas menit

21 April 2015 08:55:00

Pukul sembilan kurang lima menit


namun ada kesalahan kecil, yaitu hasilnya tidak cocok. dimanakah perubahan cekripnya agar sesuai dengan hasil?
Option Explicit
Function ejam(y As Double) As String
Dim a As Double
Dim h As Double
Dim m As Double
a = y - Int(y)
h = Int(a * 24)
m = Int((a * 24 - Int(a * 24)) * 60)
If m < 40 Then
If m = 0 Then
ejam = "Pukul " & angka(h)
Exit Function
Else
End If
ejam = "Pukul " & angka(h) & " lewat " & angka(m) & " menit"
Else
ejam = "Pukul " & angka(h + 1) & " kurang " & angka(60 - m) & " menit"
End If
End Function


Function angka(x As Double) As String
Dim p As Double
Dim s As Double
Dim kuruf(9)
kuruf(1) = "satu"
kuruf(2) = "dua"
kuruf(3) = "tiga"
kuruf(4) = "empat "
kuruf(5) = "lima "
kuruf(6) = "enam "
kuruf(7) = "tujuh "
kuruf(8) = "delapan "
kuruf(9) = "sembilan "
p = Int(x / 10)
s = x - p * 10
If x = 0 Then
angka = "nol"
Exit Function
Else
End If
If p = 1 Then
If s = 1 Then
angka = "sebelas"
Exit Function
Else
If s = 0 Then
angka = "sepuluh"
Exit Function
Else
End If
angka = kuruf(s) & " belas"
Exit Function
End If
Else
If p = 0 Then
angka = kuruf(s)
Else
angka = kuruf(p) & " puluh " & kuruf(s)
End If
End If
End Function
walaikumsalam warahmatullah.
Agus

2015-12-01 23:31 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com<mailto:mr.nmkid@gmail.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Wa'alaikumussalam wr wb
Coba file yang ada disini<https://app.box.com/s/gefh85lon4avu9n66ifm>.
Wassalamu'alaikum wr wb
Kid




2015-11-28 22:11 GMT+07:00 zainal_abidinm@yahoo.com<mailto:zainal_abidinm@yahoo.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:


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





__________________________________________________________
This email has been scanned by AkzoNobel for Viruses and Spam.
For more information please contact your local IT Service Desk.
__________________________________________________________



__________________________________________________________
This email has been scanned by AkzoNobel for Viruses and Spam.
For more information please contact your local IT Service Desk.
__________________________________________________________

Tue Dec 8, 2015 8:13 pm (PST) . Posted by:

"Nang Agus"

2015-12-09 10:49 GMT+07:00 'Subroto, Matzen' matzen.subroto@akzonobel.com
[belajar-excel] <belajar-excel@yahoogroups.com>:

>
>
> Assalamu alaikum,
>
>
>
> Pak Agus,
>
>
>
> Bisa di share ga filenya yang sudah okeh
>
>
>
> Wassalam
>
> *Terima Kasih*
>
>
>
> *Matzen*
>
>
>
>
>
>
>
>
>
> *From:* belajar-excel@yahoogroups.com [mailto:
> belajar-excel@yahoogroups.com]
> *Sent:* 09 Desember 2015 10:31
> *To:* BExcel
> *Subject:* Re: [belajar-excel] (Help) Cara merubah jam menjadi teks
>
>
>
>
>
> Asalamualaikum warahmatullah.
>
> Mas Kid,
>
> sudah selesai sesuai keinginan berdasarkan petunjuk yang diberikan.
>
> terima kasih.
>
> wasalamualaikum warahmatullah.
>
> Thole Agus
>
>
>
> 2015-12-09 9:46 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
>
> Wa'alaikumussalam wr wb
>
> mas Nang,
>
> Ngobrolin tentang waktu ya...
>
> Tipe datanya adalah datetime. Di VB/VBA bertipe date.
>
> Nilai serial tanggal yang menyertakan sisi wakt memang bisa disiman juga
> dalam tipe data double.
>
> Jadi, bagian : (optional, tetapi bisa jadi akan bermanfaat)
>
> Function ejam(y As Double) As String
>
> tipedatanya bisa diganti menjadi Date atau dibiarkan tetap Double.
>
> Perbedaannya yang mudah tampak adalah respon UDF terhadap nilai yang
> di-input-ken. Tipe data Date di VB/VBA 6 atau VBA 7 akan menerima nilai
> numerik serial date saja, yaitu dari serial date tanggal 0100-01-01 sampai
> 9999-12-31. Sedangkan Double akan menerima nilai numerik dengan rentang
> yang lebih lebar, bisa sampai e300-an.
>
> Ketika sebuah function diberi nilai inputan yang diluar interval datatype
> nya, makan akan segera mengembalikan error value #NUM! (sebagai hasil,
> tanpa mengerjakan baris kode apapun yang ada di dalam function).
>
> Ketika mengolah data yang sejatinya berupa nilai waktu (sisi tanggal saja,
> sisi jam saja, ataupun kedua sisinya), akan lebih konsisten tepat jika
> diolah dalam tipe data Date dan memanfaatkan fungsi-fungsi yang khusus
> mengolah data bertipe date dibanding dengan menggunakan yang lainnya.
>
> Misalnya, ingin mendapatkan nilai tahun, maka gunakan fungsi Year. Karena
> fungsi Year menghasilkan data bertipe Integer, maka variabel penyimpannya
> juga bertipe integer.
>
>
>
> Cara tersebut di atas akan lebih konsisten tepat dibanding dengan
> komputasi matematis dengan nilai-nilai yang masih disimpan dalam datatype
> double.
>
> Jadi, bagian :
>
> Dim h As Double
> Dim m As Double
>
> diubah saja agar menjadi bertipe integer. Nilai jam dan menit dapat
> ditampung oleh datatype integer. Menggunakan *Long akan lebih baik*,
> karena konon untuk aplikasi 32 bit akan lebih cepat menggunakan tipe data
> Long, karena di dalam VBA, tipe data integer akan disimpan dalam ruang
> memory seluas ruang untuk datatype Long. Justru kalau menggunakan datatype
> integer, maka akan ada proses tambahan untuk mengubahnya menjadi Long,
> tetapi hanya tetap menyimpan interval nilai yang sempit.
>
>
>
> Kemudian, nilai jam dan menit, diperoleh dengan fungsi Hour dan Minute
> saja.
>
> h=hour(y)
>
> m=minute(y)
>
> Hal ini akan lebih konsisten tepat. Apalagi jika y bertipe Date. Jadi,
> saat mengambil nilai jam dan menit ini tidak dipengaruhi oleh tipe data nya
> h dan m.
>
> Proses selanjutnya yang akan menggunakan variabel h dan m yang akan
> dipengaruhi oleh tipe data.
>
>
>
> Kayanya, perbaikan bagian itu bisa dicoba lebih dulu. Jika hasilnya masih
> keliru, berarti ada bagian kode setelah pengambilan nilai jam dan menit
> yang kurang sesuai, dan membutuhkan cek baris-per-baris kode.
>
> Moga-moga dengan perbaikan di atas jadi ndak perlu cek baris-per-baris
> kode ya
>
>
>
> Wassalamu'alaikum wr wb
>
> Kid.
>
>
>
>
>
> 2015-12-09 8:19 GMT+07:00 Nang Agus nangagus@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
>
> Dear Member BExcel,
>
> Asalamualaikum warahmatullah,
>
> Saya membuat cekrip sederhana untuk mengubah angka jam menjadi huruf,
>
> 16 Mei 2012 05:30:00
>
> Pukul lima lewat dua puluh sembilan menit
>
> 12 April 2015 08:33:00
>
> Pukul delapan lewat tiga puluh dua menit
>
> 13 April 2015 08:21:00
>
> Pukul delapan lewat dua puluh menit
>
> 14 April 2015 08:39:00
>
> Pukul delapan lewat tiga puluh sembilan menit
>
> 15 April 2015 08:17:00
>
> Pukul delapan lewat enam belas menit
>
> 16 April 2015 08:02:00
>
> Pukul delapan lewat satu menit
>
> 17 April 2015 08:40:00
>
> Pukul delapan lewat tiga puluh sembilan menit
>
> 18 April 2015 08:02:00
>
> Pukul delapan lewat satu menit
>
> 19 April 2015 08:05:00
>
> Pukul delapan lewat empat menit
>
> 20 April 2015 08:42:00
>
> Pukul sembilan kurang delapan belas menit
>
> 21 April 2015 08:55:00
>
> Pukul sembilan kurang lima menit
>
>
>
> namun ada kesalahan kecil, yaitu hasilnya tidak cocok. dimanakah perubahan
> cekripnya agar sesuai dengan hasil?
> Option Explicit
> Function ejam(y As Double) As String
> Dim a As Double
> Dim h As Double
> Dim m As Double
> a = y - Int(y)
> h = Int(a * 24)
> m = Int((a * 24 - Int(a * 24)) * 60)
> If m < 40 Then
> If m = 0 Then
> ejam = "Pukul " & angka(h)
> Exit Function
> Else
> End If
> ejam = "Pukul " & angka(h) & " lewat " & angka(m) & " menit"
> Else
> ejam = "Pukul " & angka(h + 1) & " kurang " & angka(60 - m) & " menit"
> End If
> End Function
>
>
> Function angka(x As Double) As String
> Dim p As Double
> Dim s As Double
> Dim kuruf(9)
> kuruf(1) = "satu"
> kuruf(2) = "dua"
> kuruf(3) = "tiga"
> kuruf(4) = "empat "
> kuruf(5) = "lima "
> kuruf(6) = "enam "
> kuruf(7) = "tujuh "
> kuruf(8) = "delapan "
> kuruf(9) = "sembilan "
> p = Int(x / 10)
> s = x - p * 10
> If x = 0 Then
> angka = "nol"
> Exit Function
> Else
> End If
> If p = 1 Then
> If s = 1 Then
> angka = "sebelas"
> Exit Function
> Else
> If s = 0 Then
> angka = "sepuluh"
> Exit Function
> Else
> End If
> angka = kuruf(s) & " belas"
> Exit Function
> End If
> Else
> If p = 0 Then
> angka = kuruf(s)
> Else
> angka = kuruf(p) & " puluh " & kuruf(s)
> End If
> End If
> End Function
>
> walaikumsalam warahmatullah.
>
> Agus
>
>
>
> 2015-12-01 23:31 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
>
> Wa'alaikumussalam wr wb
>
> Coba file yang ada disini <https://app.box.com/s/gefh85lon4avu9n66ifm>.
>
> Wassalamu'alaikum wr wb
>
> Kid
>
>
>
>
>
>
>
> 2015-11-28 22:11 GMT+07:00 zainal_abidinm@yahoo.com [belajar-excel] <
> belajar-excel@yahoogroups.com>:
>
>
>
> 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
>
>
>
>
>
>
>
>
>
>
>
> __________________________________________________________
> This email has been scanned by AkzoNobel for Viruses and Spam.
> For more information please contact your local IT Service Desk.
>
> __________________________________________________________
>
>
>

Tue Dec 8, 2015 8:23 pm (PST) . Posted by:

"Nang Agus"

OK mas kid saya pasang di Box nih, disini
<https://app.box.com/files/0/f/0/1/f_46147092017>

file tersebut UDF dengan pecahan 2 buah UDF
1. angka(x)
yang bertugas untuk mengubah ankga menjadi huruf.
disini hanya dibatasi sampai sembilan puluh sembilan (99), karena yang
dibaca haya jam dan menit yang hanya dibatasi sampai 60.
2. ejam(y)
bertugas untuk membaca nilai jam dan menitnya.
pada fungsi ini dibatasi sampai menit ke 40. jika dibawah 40 akan dibaca
lebih 39 menit, tetapi untuk menit >=40 akan dibaca kekurangannya,
misal 10:40 akan dibaca pukul sebelas kurang 20 menit.

silahkan diubah sesuai dengan kebutuhan masing-masing.
wasalam
Thole Agus

2015-12-09 11:13 GMT+07:00 Nang Agus <nangagus@gmail.com>:

>
>
> 2015-12-09 10:49 GMT+07:00 'Subroto, Matzen' matzen.subroto@akzonobel.com
> [belajar-excel] <belajar-excel@yahoogroups.com>:
>
>>
>>
>> Assalamu alaikum,
>>
>>
>>
>> Pak Agus,
>>
>>
>>
>> Bisa di share ga filenya yang sudah okeh
>>
>>
>>
>> Wassalam
>>
>> *Terima Kasih*
>>
>>
>>
>> *Matzen*
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *From:* belajar-excel@yahoogroups.com [mailto:
>> belajar-excel@yahoogroups.com]
>> *Sent:* 09 Desember 2015 10:31
>> *To:* BExcel
>> *Subject:* Re: [belajar-excel] (Help) Cara merubah jam menjadi teks
>>
>>
>>
>>
>>
>> Asalamualaikum warahmatullah.
>>
>> Mas Kid,
>>
>> sudah selesai sesuai keinginan berdasarkan petunjuk yang diberikan.
>>
>> terima kasih.
>>
>> wasalamualaikum warahmatullah.
>>
>> Thole Agus
>>
>>
>>
>> 2015-12-09 9:46 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
>> belajar-excel@yahoogroups.com>:
>>
>>
>>
>> Wa'alaikumussalam wr wb
>>
>> mas Nang,
>>
>> Ngobrolin tentang waktu ya...
>>
>> Tipe datanya adalah datetime. Di VB/VBA bertipe date.
>>
>> Nilai serial tanggal yang menyertakan sisi wakt memang bisa disiman juga
>> dalam tipe data double.
>>
>> Jadi, bagian : (optional, tetapi bisa jadi akan bermanfaat)
>>
>> Function ejam(y As Double) As String
>>
>> tipedatanya bisa diganti menjadi Date atau dibiarkan tetap Double.
>>
>> Perbedaannya yang mudah tampak adalah respon UDF terhadap nilai yang
>> di-input-ken. Tipe data Date di VB/VBA 6 atau VBA 7 akan menerima nilai
>> numerik serial date saja, yaitu dari serial date tanggal 0100-01-01 sampai
>> 9999-12-31. Sedangkan Double akan menerima nilai numerik dengan rentang
>> yang lebih lebar, bisa sampai e300-an.
>>
>> Ketika sebuah function diberi nilai inputan yang diluar interval datatype
>> nya, makan akan segera mengembalikan error value #NUM! (sebagai hasil,
>> tanpa mengerjakan baris kode apapun yang ada di dalam function).
>>
>> Ketika mengolah data yang sejatinya berupa nilai waktu (sisi tanggal
>> saja, sisi jam saja, ataupun kedua sisinya), akan lebih konsisten tepat
>> jika diolah dalam tipe data Date dan memanfaatkan fungsi-fungsi yang khusus
>> mengolah data bertipe date dibanding dengan menggunakan yang lainnya.
>>
>> Misalnya, ingin mendapatkan nilai tahun, maka gunakan fungsi Year. Karena
>> fungsi Year menghasilkan data bertipe Integer, maka variabel penyimpannya
>> juga bertipe integer.
>>
>>
>>
>> Cara tersebut di atas akan lebih konsisten tepat dibanding dengan
>> komputasi matematis dengan nilai-nilai yang masih disimpan dalam datatype
>> double.
>>
>> Jadi, bagian :
>>
>> Dim h As Double
>> Dim m As Double
>>
>> diubah saja agar menjadi bertipe integer. Nilai jam dan menit dapat
>> ditampung oleh datatype integer. Menggunakan *Long akan lebih baik*,
>> karena konon untuk aplikasi 32 bit akan lebih cepat menggunakan tipe data
>> Long, karena di dalam VBA, tipe data integer akan disimpan dalam ruang
>> memory seluas ruang untuk datatype Long. Justru kalau menggunakan datatype
>> integer, maka akan ada proses tambahan untuk mengubahnya menjadi Long,
>> tetapi hanya tetap menyimpan interval nilai yang sempit.
>>
>>
>>
>> Kemudian, nilai jam dan menit, diperoleh dengan fungsi Hour dan Minute
>> saja.
>>
>> h=hour(y)
>>
>> m=minute(y)
>>
>> Hal ini akan lebih konsisten tepat. Apalagi jika y bertipe Date. Jadi,
>> saat mengambil nilai jam dan menit ini tidak dipengaruhi oleh tipe data nya
>> h dan m.
>>
>> Proses selanjutnya yang akan menggunakan variabel h dan m yang akan
>> dipengaruhi oleh tipe data.
>>
>>
>>
>> Kayanya, perbaikan bagian itu bisa dicoba lebih dulu. Jika hasilnya masih
>> keliru, berarti ada bagian kode setelah pengambilan nilai jam dan menit
>> yang kurang sesuai, dan membutuhkan cek baris-per-baris kode.
>>
>> Moga-moga dengan perbaikan di atas jadi ndak perlu cek baris-per-baris
>> kode ya
>>
>>
>>
>> Wassalamu'alaikum wr wb
>>
>> Kid.
>>
>>
>>
>>
>>
>> 2015-12-09 8:19 GMT+07:00 Nang Agus nangagus@gmail.com [belajar-excel] <
>> belajar-excel@yahoogroups.com>:
>>
>>
>>
>> Dear Member BExcel,
>>
>> Asalamualaikum warahmatullah,
>>
>> Saya membuat cekrip sederhana untuk mengubah angka jam menjadi huruf,
>>
>> 16 Mei 2012 05:30:00
>>
>> Pukul lima lewat dua puluh sembilan menit
>>
>> 12 April 2015 08:33:00
>>
>> Pukul delapan lewat tiga puluh dua menit
>>
>> 13 April 2015 08:21:00
>>
>> Pukul delapan lewat dua puluh menit
>>
>> 14 April 2015 08:39:00
>>
>> Pukul delapan lewat tiga puluh sembilan menit
>>
>> 15 April 2015 08:17:00
>>
>> Pukul delapan lewat enam belas menit
>>
>> 16 April 2015 08:02:00
>>
>> Pukul delapan lewat satu menit
>>
>> 17 April 2015 08:40:00
>>
>> Pukul delapan lewat tiga puluh sembilan menit
>>
>> 18 April 2015 08:02:00
>>
>> Pukul delapan lewat satu menit
>>
>> 19 April 2015 08:05:00
>>
>> Pukul delapan lewat empat menit
>>
>> 20 April 2015 08:42:00
>>
>> Pukul sembilan kurang delapan belas menit
>>
>> 21 April 2015 08:55:00
>>
>> Pukul sembilan kurang lima menit
>>
>>
>>
>> namun ada kesalahan kecil, yaitu hasilnya tidak cocok. dimanakah
>> perubahan cekripnya agar sesuai dengan hasil?
>> Option Explicit
>> Function ejam(y As Double) As String
>> Dim a As Double
>> Dim h As Double
>> Dim m As Double
>> a = y - Int(y)
>> h = Int(a * 24)
>> m = Int((a * 24 - Int(a * 24)) * 60)
>> If m < 40 Then
>> If m = 0 Then
>> ejam = "Pukul " & angka(h)
>> Exit Function
>> Else
>> End If
>> ejam = "Pukul " & angka(h) & " lewat " & angka(m) & " menit"
>> Else
>> ejam = "Pukul " & angka(h + 1) & " kurang " & angka(60 - m) & " menit"
>> End If
>> End Function
>>
>>
>> Function angka(x As Double) As String
>> Dim p As Double
>> Dim s As Double
>> Dim kuruf(9)
>> kuruf(1) = "satu"
>> kuruf(2) = "dua"
>> kuruf(3) = "tiga"
>> kuruf(4) = "empat "
>> kuruf(5) = "lima "
>> kuruf(6) = "enam "
>> kuruf(7) = "tujuh "
>> kuruf(8) = "delapan "
>> kuruf(9) = "sembilan "
>> p = Int(x / 10)
>> s = x - p * 10
>> If x = 0 Then
>> angka = "nol"
>> Exit Function
>> Else
>> End If
>> If p = 1 Then
>> If s = 1 Then
>> angka = "sebelas"
>> Exit Function
>> Else
>> If s = 0 Then
>> angka = "sepuluh"
>> Exit Function
>> Else
>> End If
>> angka = kuruf(s) & " belas"
>> Exit Function
>> End If
>> Else
>> If p = 0 Then
>> angka = kuruf(s)
>> Else
>> angka = kuruf(p) & " puluh " & kuruf(s)
>> End If
>> End If
>> End Function
>>
>> walaikumsalam warahmatullah.
>>
>> Agus
>>
>>
>>
>> 2015-12-01 23:31 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com [belajar-excel] <
>> belajar-excel@yahoogroups.com>:
>>
>>
>>
>> Wa'alaikumussalam wr wb
>>
>> Coba file yang ada disini <https://app.box.com/s/gefh85lon4avu9n66ifm>.
>>
>> Wassalamu'alaikum wr wb
>>
>> Kid
>>
>>
>>
>>
>>
>>
>>
>> 2015-11-28 22:11 GMT+07:00 zainal_abidinm@yahoo.com [belajar-excel] <
>> belajar-excel@yahoogroups.com>:
>>
>>
>>
>> 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
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> __________________________________________________________
>> This email has been scanned by AkzoNobel for Viruses and Spam.
>> For more information please contact your local IT Service Desk.
>>
>> __________________________________________________________
>>
>>
>>
>
>

Tue Dec 8, 2015 10:34 pm (PST) . Posted by:

"Subroto, Matzen"

Mantaf kang Nang Agus..Barokalloh

From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com]
Sent: 09 Desember 2015 11:13
To: BExcel
Subject: Re: [belajar-excel] (Help) Cara merubah jam menjadi teks [1 Attachment]




2015-12-09 10:49 GMT+07:00 'Subroto, Matzen' matzen.subroto@akzonobel.com<mailto:matzen.subroto@akzonobel.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Assalamu alaikum,

Pak Agus,

Bisa di share ga filenya yang sudah okeh

Wassalam
Terima Kasih

Matzen




From: belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com> [mailto:belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>]
Sent: 09 Desember 2015 10:31
To: BExcel
Subject: Re: [belajar-excel] (Help) Cara merubah jam menjadi teks


Asalamualaikum warahmatullah.
Mas Kid,
sudah selesai sesuai keinginan berdasarkan petunjuk yang diberikan.
terima kasih.
wasalamualaikum warahmatullah.
Thole Agus

2015-12-09 9:46 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com<mailto:mr.nmkid@gmail.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Wa'alaikumussalam wr wb
mas Nang,
Ngobrolin tentang waktu ya...
Tipe datanya adalah datetime. Di VB/VBA bertipe date.
Nilai serial tanggal yang menyertakan sisi wakt memang bisa disiman juga dalam tipe data double.
Jadi, bagian : (optional, tetapi bisa jadi akan bermanfaat)
Function ejam(y As Double) As String
tipedatanya bisa diganti menjadi Date atau dibiarkan tetap Double.
Perbedaannya yang mudah tampak adalah respon UDF terhadap nilai yang di-input-ken. Tipe data Date di VB/VBA 6 atau VBA 7 akan menerima nilai numerik serial date saja, yaitu dari serial date tanggal 0100-01-01 sampai 9999-12-31. Sedangkan Double akan menerima nilai numerik dengan rentang yang lebih lebar, bisa sampai e300-an.
Ketika sebuah function diberi nilai inputan yang diluar interval datatype nya, makan akan segera mengembalikan error value #NUM! (sebagai hasil, tanpa mengerjakan baris kode apapun yang ada di dalam function).
Ketika mengolah data yang sejatinya berupa nilai waktu (sisi tanggal saja, sisi jam saja, ataupun kedua sisinya), akan lebih konsisten tepat jika diolah dalam tipe data Date dan memanfaatkan fungsi-fungsi yang khusus mengolah data bertipe date dibanding dengan menggunakan yang lainnya.
Misalnya, ingin mendapatkan nilai tahun, maka gunakan fungsi Year. Karena fungsi Year menghasilkan data bertipe Integer, maka variabel penyimpannya juga bertipe integer.

Cara tersebut di atas akan lebih konsisten tepat dibanding dengan komputasi matematis dengan nilai-nilai yang masih disimpan dalam datatype double.
Jadi, bagian :
Dim h As Double
Dim m As Double
diubah saja agar menjadi bertipe integer. Nilai jam dan menit dapat ditampung oleh datatype integer. Menggunakan Long akan lebih baik, karena konon untuk aplikasi 32 bit akan lebih cepat menggunakan tipe data Long, karena di dalam VBA, tipe data integer akan disimpan dalam ruang memory seluas ruang untuk datatype Long. Justru kalau menggunakan datatype integer, maka akan ada proses tambahan untuk mengubahnya menjadi Long, tetapi hanya tetap menyimpan interval nilai yang sempit.

Kemudian, nilai jam dan menit, diperoleh dengan fungsi Hour dan Minute saja.
h=hour(y)
m=minute(y)
Hal ini akan lebih konsisten tepat. Apalagi jika y bertipe Date. Jadi, saat mengambil nilai jam dan menit ini tidak dipengaruhi oleh tipe data nya h dan m.
Proses selanjutnya yang akan menggunakan variabel h dan m yang akan dipengaruhi oleh tipe data.

Kayanya, perbaikan bagian itu bisa dicoba lebih dulu. Jika hasilnya masih keliru, berarti ada bagian kode setelah pengambilan nilai jam dan menit yang kurang sesuai, dan membutuhkan cek baris-per-baris kode.
Moga-moga dengan perbaikan di atas jadi ndak perlu cek baris-per-baris kode ya

Wassalamu'alaikum wr wb
Kid.


2015-12-09 8:19 GMT+07:00 Nang Agus nangagus@gmail.com<mailto:nangagus@gmail.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Dear Member BExcel,
Asalamualaikum warahmatullah,
Saya membuat cekrip sederhana untuk mengubah angka jam menjadi huruf,
16 Mei 2012 05:30:00

Pukul lima lewat dua puluh sembilan menit

12 April 2015 08:33:00

Pukul delapan lewat tiga puluh dua menit

13 April 2015 08:21:00

Pukul delapan lewat dua puluh menit

14 April 2015 08:39:00

Pukul delapan lewat tiga puluh sembilan menit

15 April 2015 08:17:00

Pukul delapan lewat enam belas menit

16 April 2015 08:02:00

Pukul delapan lewat satu menit

17 April 2015 08:40:00

Pukul delapan lewat tiga puluh sembilan menit

18 April 2015 08:02:00

Pukul delapan lewat satu menit

19 April 2015 08:05:00

Pukul delapan lewat empat menit

20 April 2015 08:42:00

Pukul sembilan kurang delapan belas menit

21 April 2015 08:55:00

Pukul sembilan kurang lima menit


namun ada kesalahan kecil, yaitu hasilnya tidak cocok. dimanakah perubahan cekripnya agar sesuai dengan hasil?
Option Explicit
Function ejam(y As Double) As String
Dim a As Double
Dim h As Double
Dim m As Double
a = y - Int(y)
h = Int(a * 24)
m = Int((a * 24 - Int(a * 24)) * 60)
If m < 40 Then
If m = 0 Then
ejam = "Pukul " & angka(h)
Exit Function
Else
End If
ejam = "Pukul " & angka(h) & " lewat " & angka(m) & " menit"
Else
ejam = "Pukul " & angka(h + 1) & " kurang " & angka(60 - m) & " menit"
End If
End Function


Function angka(x As Double) As String
Dim p As Double
Dim s As Double
Dim kuruf(9)
kuruf(1) = "satu"
kuruf(2) = "dua"
kuruf(3) = "tiga"
kuruf(4) = "empat "
kuruf(5) = "lima "
kuruf(6) = "enam "
kuruf(7) = "tujuh "
kuruf(8) = "delapan "
kuruf(9) = "sembilan "
p = Int(x / 10)
s = x - p * 10
If x = 0 Then
angka = "nol"
Exit Function
Else
End If
If p = 1 Then
If s = 1 Then
angka = "sebelas"
Exit Function
Else
If s = 0 Then
angka = "sepuluh"
Exit Function
Else
End If
angka = kuruf(s) & " belas"
Exit Function
End If
Else
If p = 0 Then
angka = kuruf(s)
Else
angka = kuruf(p) & " puluh " & kuruf(s)
End If
End If
End Function
walaikumsalam warahmatullah.
Agus

2015-12-01 23:31 GMT+07:00 'Mr. Kid' mr.nmkid@gmail.com<mailto:mr.nmkid@gmail.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:

Wa'alaikumussalam wr wb
Coba file yang ada disini<https://app.box.com/s/gefh85lon4avu9n66ifm>.
Wassalamu'alaikum wr wb
Kid




2015-11-28 22:11 GMT+07:00 zainal_abidinm@yahoo.com<mailto:zainal_abidinm@yahoo.com> [belajar-excel] <belajar-excel@yahoogroups.com<mailto:belajar-excel@yahoogroups.com>>:


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





__________________________________________________________
This email has been scanned by AkzoNobel for Viruses and Spam.
For more information please contact your local IT Service Desk.
__________________________________________________________



__________________________________________________________
This email has been scanned by AkzoNobel for Viruses and Spam.
For more information please contact your local IT Service Desk.
__________________________________________________________

Wed Dec 9, 2015 12:05 am (PST) . Posted by:

"Toby kenzo" tobykenzo

Mas Agus,saya tambahkan pake detiknya ya..

Sent from Yahoo Mail on Android

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