mas kid..., untuk mengikuti EYD kayaknya memang sulit ya,
barangkali kita perlu kamus besar bhs ind untuk diusung kedalam UDF
maaf, masih soal ini lagi....
modifiksi terakhir (terlampir), mudah mudahan mendekati apa yg dikehendaki oleh Alex
(terutama pada tahap pemakaiannya di listbox yg ada di dalam userform)
disitu perbaikannya antara lain
* Wrapping HANYA memenggal pada SPASI atau pada "-"
* userform (berisi rangkaian comments ygs udah di WRAPPED) menampung semua
comments yg pernah ditulis; selama data di kolom E belum dihapus
sebab:
* saat userform di UnLoad listbox kehilangan isinya
* saat userform di Load lagi, listbox menjiplak data dari kolom E (E20.CurrentRegion)
untuk kemudian siap bertugas menampungi comments baru
Codingnya (khusus di bagian UDF WrapText-nya) spt ini
Function ctvWrapText(S As String, p As Integer)
'--siti Vi / jurangmangu, 24 jan 2011
'--"di sini melayani pemenggalan kalimat, gratiss.."
Dim Tarr() As String '<<--array dinamis--<
Dim T As String, K As String
Dim i As Integer, j As Integer
Dim m As Integer, n As Integer
p = p + 1: i = 1
S = Trim(S) & " "
T = Mid(S, 1, p)
While i < Len(S)
For j = p To 1 Step -1
' 3 bijik variable ini diadakan hanya untuk memudahkan pemahaman algor-nya,
'karena sebetulnya dpt dibuat langsung di dlm perintah utama-nya
T = Mid(S, i, p)
K = Mid(T, j, 1)
m = IIf(K = " ", 1, 0)
If InStr(1, " -", K) > 0 Then
n = n + 1
ReDim Preserve Tarr(1 To n)
Tarr(n) = Left(T, j - m)
i = i + j
Exit For
End If
Next j
Wend
ctvWrapText = Tarr
End Function
'-----------------------------------------------------------
' pemenggalan kalimat S akan dilaksanakan dgn syarat:
'-----------------------------------------------------------
' * max length per penggalan = p karakter
' * penggalan harus selalu pada karakter Spasi atau "-"
' praktik pelaksanaannya bgnama ?:
' > jika karakter ke (p+1) bukan SPASI atau "-",
' > si-pemenggal akan MUNDUR setapak-demi-setapak
' > sampai ketemu SAPI eh..SPASI (tentu untuk dipenggal)
' > Selain itu, agar 'kata terakhir' ikut diurusin;
' maka kalimatnya perlu ditambah SPASI di ujung kanan.
' gitu loch cariosna....
' siti Vi / 24 Jan 2011
'-----------------------------------------------------------
' sintaks
' variable_variant
' = ctvWrapText(String_yg_akan_dipenggal, Integer_MaxLength)
'------------------------------------------------------------
' versi ini belum disesuaikan dgn keperluan di sheet
Mungkin udf pada file terlampir sedikit beda dan lebih panjang dengan usulan mbak Siti.
UDF PotongTeks dibangun untuk mampu wrap text dalam sebuah cell dengan panjang maksimal tertentu per potongannya (alias meng-multi line-kan pada batas maksimal), dan mampu menghitung cacah jumlah baris hasil.
UDF tidak mampu memotong kata sesuai EYD. hahahaha....
Regards.
Kid.2011/1/24 STDEV(i) <setiyowati.devi@gmail.com>
sebetulnya...
karea sudah ada formula sakti dari mas kid; maka solusi berikut ini
menjadi gag-penting lagee
"kita" tetap ngeyel kirim; dengah harapan untuk dilihat-lihat saja lah
1 solusi dengan meu Edit > Fill > Justify
misal di kolom B di cell B2 tertulis datanya
di B1 kita tulis "ruller" sbb
'12345678901234567890123456789012345678901234567890
kemudian B1 itu diformat FONT = COURIER NEW
yaitu font yg width-nya fixed (semua karakter punya width yg sama)
begitu juga area range dimana hasil akan dituliskan
(misal B1:B1000)
kemudian kolom B kita atur lebarnya agar pas dengan lebar data di B1 itu
("habis itu"...) kita select B2 lalu selection kita lebarkan ke bawah
beberapa baris yg kira kira menampung hasil Fill-Justifying-nya
lebih baik kelebihan daripada kurang...
("habis itu"...) klik menu > Edit > Fill >> Justify
dan lihat apa yang terjadi... (mungkin ini termasuk hasil yg super dan mulia)
seperti muridnya Oom Mario Teguh
2 dengam FORMULA array
( sudah dicontohkan oleh Mr Kid )
Mohon dicoba pula =LEFT(E15,D15-1)
tetapi kolom D berisi formula helper (lihat lampiran)
Pelanggan Daily-Digest atau No-Mail/Web-Only bisa mengunduh sendiri
di sinih: http://www.box.net/shared/gq6aymcs2k
3. dengan formula berbantu UDF
=WrapFormula(B22,50)
jika fungsi WrapFormula diberlakukan tanpa argument ke 3 (Index)
maka dia harus di enter sebagai Array Formula yg ditulis sekaligus
pada beberapa cells sekolom
=WrapFormula(B22,50,2)
=WrapFormula(B22,50,3)
Di enter secara individual ( cell satu = formula biasa)
argument ke 3 (dlm contoh 2 dan 3) adalah "index hasil ke"
So misalnya hasilnya 6 baris dua formula tsb menghasilkan
hasil (penggalan kalimat) ke 2 dan ke 3.
Oiya argument ke 2 harus berisi angka bulat positip, (dlm contoh = 50)
dia adalah max banyaknya character per sekali tekuk.
Coding UDF nya ndak "macem-macem" (hanya 1 macem saja) spt ini
| "if you are the most valuable assets, you will show up on the |
| balance sheet..." - oNo Wiqe |
| 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