Bagaimana kalau seandainya KATA-KATA TERTENTU itu di dalam kalimatnya
mengandung KOMA, TITIK, KURUNG atau tanda baca lain; misal :
"PULANG DARI RSPAD, DIA LANGSUNG TIDUR."
Hasil yang diinginkan : "Pulang Dari RSPAD, Dia Langsung Tidur."
Dengan UDF yg sudah dibuat kemaren, hasilnya salah, karena :
"RSPAD" (kriteria yg ada di daftar Kata-Kata Tertentu" tentu statusnya tidak sama
dengan "RSPAD," yg ada di Kalimat.
Untuk kasus seperti ini kita dapat meningkatkan UDF kita dengan memodifikasinya
antara lain dengan coding sbb:
Function SpecialProper(Str As String, Daftar As Range) As String
' siti Vi // 12 Agu 2010 / devoted to XL-mania
' fungsi seperti PROPER tetapi mengabaikan Daftar Kata tertentu
Dim StrArr As Variant
Dim Tanda As Variant
Dim Txt As String
Dim k As String
Dim i As Integer
Dim n As Integer
Dim t As Integer
Tanda = ". , ; : ' ( ) @ # [ ] / ! ? % " & """"
Tanda = Split(Tanda, " ")
StrArr = Split(Str, " ")
For i = 0 To UBound(StrArr)
For n = 1 To Daftar.Rows.Count
' Proses untuk mengabaikan tanda baca
k = StrArr(i)
For t = 0 To UBound(Tanda)
k = Replace(k, Tanda(t), "")
Next t
If UCase(k) = UCase(Daftar(n)) Then
StrArr(i) = UCase(StrArr(i))
Exit For
Else
StrArr(i) = WorksheetFunction.Proper(StrArr(i))
End If
Next n
Next i
For i = 0 To UBound(StrArr)
Txt = Txt & StrArr(i) & " "
Next i
SpecialProper = Trim(Txt)
End Function
'----------------------------
Anda punya banyak kalimat di mana semua hurufnya = Huruf CAPITAL /
(UpperCase) atau semua hurufnya = huruf kecil (lowerCase), atau..
Upper/Lower-Casenya tidak beraturan..
Truzz... anda ingin mengubah banyak kalimat tsb menjadi "Proper";
yaitu semua Huruf Pertama = UpperCase; selain itu semua huruf = LowerCase.
Tetapi anda ingin agar KATA-KATA tertentu tetap ditulis sebagai UpperCase
Yang dimaksud dengan kata-kata tertentu tsb biasanya berupa singkatan, misal :
RS, PT, CV, RUP, RSU, SH, SE, PRJ, DLLAJR,
POLRI, TNI, RRI, TVRI, SCTV, RCTI, DKI, DIY,
KDRT, CLBK (=cinta lama belon kelar) dst..
contoh
"AKU BERPISAH DI TERAS RSPAD GATOT SUBROTO"
/ "aku berpisah di teras rspad gatot subroto"
ingin diubah menjadi
"Aku Berpisah Di Teras RSPAD Gatot Subroto"
dengan RSPAD ingin ditulis sebagai huruf Capital SEMUASeandainya anda punya atau MAU membuat daftar kata-kata yg anda inginkanmendapat perlakuan istimewa seperti itu, maka kita dapat dengan mudah memenuhikeinginan tsbCara paling mudah kita buat sendiri sebuah fungsi khususDlm workbook lampiran; kita membuat fungsi khusus yg bernamaSpecial Proper.sintaks nya =SpecialProper(Text,RangeBerisiDaftarKata)
'------------
' listing prosedur fungsi
Function SpecialProper(Str As String, Daftar As Range) As String
' siti Vi // 12 Agu 2010 / devoted to XL-mania
' fungsi seperti PROPER tetapi mengabaikan Daftar Kata tertentu
Dim Txt As String '= String penampung kata
Dim StrArr As Variant '= Array Kata ex Str (Data kalimat)
Dim i As Integer '= pencacah (counter) Loop I
Dim n As Integer '= pencacah Loop II
StrArr = Split(Str, " ")
For i = 0 To UBound(StrArr)
For n = 1 To Daftar.Rows.CountUCase(StrArr(i)) = Daftar(n) ThenStrArr(i) = UCase(StrArr(i))
Exit For
Else
StrArr(i) = WorksheetFunction.Proper(StrArr(i))
End IfNext nNext i
For i = 0 To UBound(StrArr)Txt = Txt & StrArr(i) & " "
Next i
SpecialProper = Trim(Txt)
End Function'-------------
| selamat menunaikan ibadah puasa... walau perut lapar, tanya excel |
| jalan terus... malu bertanya telat pulang kantor :D :D :D |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message, melecehkan, tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan winzip jika perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/ |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau... |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html |
+-------------------------------------------------------------------+
| Message lama ada di : |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id] |
| http://www.mail-archive.com/xl-mania@yahoogroups.com |
+-------------------------------------------------------------------+
Nenhum comentário:
Postar um comentário