Assalamu alaikum,

Pak Agus,

Bisa di share ga filenya yang sudah okeh

Wassalam
Terima Kasih

Matzen




From: [email protected] [mailto:[email protected]]
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' 
[email protected]<mailto:[email protected]> [belajar-excel] 
<[email protected]<mailto:[email protected]>>:

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 
[email protected]<mailto:[email protected]> [belajar-excel] 
<[email protected]<mailto:[email protected]>>:

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' 
[email protected]<mailto:[email protected]> [belajar-excel] 
<[email protected]<mailto:[email protected]>>:

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 
[email protected]<mailto:[email protected]> [belajar-excel] 
<[email protected]<mailto:[email protected]>>:


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

Kirim email ke