Sedikit tambahan, kalau untuk currency dan pemisah ribuan, ndak perlu pakai itu, kecuali sudah ada routine-nya. Manfaatkan kemampuan fungsi yang ada seperti format() di VB.
2009/12/2 hery wahyudi <h...@cresyn.com> > > > Selamat Sore, > > Mas Kid dan Mbak Siti, > > TerimaKasih, sudah bantu, > > nanti akan aku coba, ilmu dari mas kid ini, > > Untuk sementara (yang penting Program jalan), aku beri Input Box pada awal > applikasi, yang mengharuskan user untuk memilih regional optionnnya ";" atau > "," :) > > sambil terus mengembangkan untuk jadi lebih mudah bagi user, > > Terimakasih > > Miturut Mr. Kid kados ingkang kaserat ing ngandap meniko: > > > > Jika memanfaatkan excel application, cara ini yang paling tepat, bias > dipanggil dari mana saja. > Jadi begitu sudah deklarasi object sebagai excel.application, maka bisa > menggunakan saran mbak Siti yang terakhir itu. > > Jika mau pakai WinAPI, ada regional setting diatur oleh kernel32 > Fungsi yang bisa digunakan -- contoh dengan VB -- : > (sesuaikan cara deklarasi fungsi dan include library dengan bahasa > pemrograman yag digunakan) > > 1. Untuk mendapatkan karakter regional setting > Declare Function GetLocaleInfo Lib "kernel32" Alias _ > "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, _ > ByVal lpLCData As String, ByVal cchData As Long) As Long > > 2. Untuk ganti (set) karakter regional setting > Declare Function SetLocaleInfo Lib "kernel32" Alias _ > "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, _ > ByVal lpLCData As String) As Boolean > > 3. untuk mendapatkan setting yang digunakan si komputer saat ini (yang > jadi default) > Declare Function GetUserDefaultLCID% Lib "kernel32" () > > Seluruh variabel LCType adalah nilai Enum dari berbagai macam item > setting. > Deklarasikan variabel masing-masing item yang Anda gunakan sebagai > konstanta berisi nilai enum tersebut dalam Hexadecimal. > Contoh untuk list separator : > > Public Const LOCALE_SLIST = &HC > > Dan gunakan fungsi-fungsi diatas. > Contoh (menggunakan VB) : Karena ingin mengambil karakter list separator, > maka yang digunakan hanya 1 dan 3 > > Public Const LOCALE_SLIST = &HC > > Public Function ListSeparatorKu() as String > Dim sListSeparatorKu as string 'variabel wadah sementara (cuma > beda s saja) > Dim lSettingID as long > > Listseparatorku = vbnullstring > > 'dapatkan id regional setting yang digunakan (default si komputer > sekarang) > lSettingID = GetUserDefaultLCID() > > 'asumsi : jumlah karakter list separator adalah 4, > 'maka manfaatkan fungsi no 2 untuk dapatkan karakter itu > 'dengan memasukkan parameter string yang jumlah karakternya sudah > didefinisikan > 'dan selalu di tambah 1 dari julah asumsi, supaya mudah diambil lagi. > 'dengan karakter bawaan tertentu > sListseparatorku = String$(5, 0) ' 5 karena 4 + 1, dan 0 (numerik) > = Chr$(0) > Call GetLocaleInfo(lSettingID, LOCALE_SLIST, sListseparatorku, 5) > ' 5 karena 4 + 1 > IF instr( sListseparatorku, Chr$(0) ) > 0 then > Listseparatorku = Left$( sListseparatorku , instr( > sListseparatorku, Chr$(0) ) - 1 ) > end if > > 'mau lihat hasilnya : > msgbox listseparatorku > End Function > > Itu tadi masih dengan asumsi julah karakternya 4. Gimana kalau > kenyataannya lebih ? > dalam programming ndak ada kata ndak mungkin, oleh sebab itu selalu ada > error handler bahkan untuk asumsi yang jelas, diberi atau dicek syarat batas > suatu nilainya. > > Jadi, lebih enak jika sudah pasti tahu berapa jumlah karakternya kan. > Caranya, memanfaatkan fungsi no.1 > > > dim lPanjangKarakter as long > > lSettingID = GetUserDefaultLCID() > lpanjangkarakter = GetLocaleInfo(lSettingID, LOCALE_SLIST, > sListseparatorku,0) > sListseparatorku = String$(lpanjangkarakter, 0) > Call GetLocaleInfo(lSettingID, LOCALE_SLIST, sListseparatorku, > lpanjangkarakter) > 'atau : > ' lpanjangkarakter = GetLocaleInfo(lSettingID, LOCALE_SLIST, > sListseparatorku, lpanjangkarakter) > > IF instr( sListseparatorku, Chr$(0) ) > 0 then > Listseparatorku = Left$( sListseparatorku , instr( > sListseparatorku, Chr$(0) ) - 1 ) > end if > > 'atau dengan blok : > ' lpanjangkarakter = instr( sListseparatorku, Chr$(0) ) > ' IF lpanjangkarakter > 0 then > ' Listseparatorku = Left$( sListseparatorku > , lpanjangkarakter - 1 ) > ' end if > > > Semoga bermanfaat. > Kid. > > 2009/12/1 siti Vi <setiyowati.d...@gmail.com> > >> >> >> oo begeetoo... >> >> nah saya blum pernah main main dengan COM >> apakah saat main-main dengan COM ndak ada kesempatan ber VBA ria? >> karena List-Separator itu disimpan di sebuah property >> kalau dilihat dari excel : >> *Application.International(Index) >> * >> untuk percobaan: >> Sub ListSeparatorKu() >> Dim lsp >> lsp = Application.International(xlListSeparator) >> MsgBox lsp & " = Ascii Code : " & Asc(lsp) >> End Sub >> >> bgmana ini mas Kid ?? (ahlinya nih...).. >> >> >> >> >> ----- Original Message ----- >> From: hery wahyudi >> To: belajar-excel@yahoogroups.com >> Sent: Tuesday, December 01, 2009 3:07 PM >> Subject: Re: [belajar-excel] WTA: Mencari Separator (pembatas) pada >> formula Excel >> >> >> Mbak Siti Benar, >> tapi masalahnya begini mbak, >> yang jadi "Exceller sejati " itu program lain, yang dari program ini aku >> memanfaatkan Component Object Model(COM) nya Excel, >> sederhananya, aku control excel dari program lain, dan akan menuliskan >> formula di excel tsb, >> nah, masalahnya separator setiap kompie tergantung settingannya, jadi ya >> pasti beda2 >> aku yakin pasti ada source tempat menyimpan separator ini, >> cuma belum ketemu >> maaf, jadi mbleber topiknya, >> BTW Terimakasih Mbak Siti sudah bersedia membahasnya, >> Terimakasih >> >> >> Miturut siti Vi kados ingkang kaserat ing ngandap meniko: >> Tanpa membuka control panel, tanpa makro ?? >> IMHO, ya harus dicoba (try & err) tuliskan di fungsi; misal >> Vlookup(A1;B1:B3;1;FALSE) >> (argument / list separator = semicolon (;) jika di enter dianggap SALAH >> >> maka berarti argument-separatornya harus diganti koma (,) >> (NOTE err-msg tsb bisa muncul karena kesalahan lain; bukan hanya soal >> ListSeparator saja) >> >> Sekedar saran, sebagai "exceller sejati", begitu ketemu PC baru tentunya >> kita ingin segera tahu >> (dan mencatat) segala setting yg berhubungan dengan excel bukan ?? >> *default direktori tempat mensave file >> *direktori untuk mensave AutoRecover >> *Language setting >> *Format date time >> *List separator >> *Decimal separator >> *Thousand Separator >> dan sebangsanya.. >> > > > > -- > * Hery Wahyudi* > >