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

