Excel Comment - Macro Untuk Konversi Data Tabel Menjadi Text dalam satu Kolom
Konversi Data Tabel Menjadi Text dalam satu Kolom
Pada tulisan sebelumnya sudah dijelaskan bagaimana caranya mengkonversi text dalam range kolom menjadi text dalam comment box. Proses ini menggunakan prosedur makro yang saya namai convertColumnToCmt .
Dalam beberpa kasus, adakalanya kita harus menyertakan table ke dalam comment. Prosedur makro convertColumnToCmt masih mempunyai kelemahan yaitu ia hanya dapat mengkonversi text dari satu kolom saja. Sedangkan table, seperti kita ketahui terdiri atas beberapa kolom. Sehingga, untuk dapat menyertakan table kedalam comment, maka diperlukan prosedur untuk mengkonversi tabel terlebih dahulu menjadi text dalam satu kolom
Semoga bermanfaat... :-)
Pada tulisan sebelumnya sudah dijelaskan bagaimana caranya mengkonversi text dalam range kolom menjadi text dalam comment box. Proses ini menggunakan prosedur makro yang saya namai convertColumnToCmt .
Dalam beberpa kasus, adakalanya kita harus menyertakan table ke dalam comment. Prosedur makro convertColumnToCmt masih mempunyai kelemahan yaitu ia hanya dapat mengkonversi text dari satu kolom saja. Sedangkan table, seperti kita ketahui terdiri atas beberapa kolom. Sehingga, untuk dapat menyertakan table kedalam comment, maka diperlukan prosedur untuk mengkonversi tabel terlebih dahulu menjadi text dalam satu kolom
Part1: Font Type Mono Space
Pada bagian pertama ini saya akan jelaskan cara membuat prosedur macro untuk menggabungkan data table kedalam satu kolom jika font yang digunakan adalah type mono space. Penggunaan font tipe lainnya akan dijelaskan dalam bagian kedua karena memerlukan pendekatan dan prosedur khusus.
Saya sendiri lebih suka menggunakan font type monospace karena kerapian text akan lebih stabil meskipun ada perubahan pada size font maupun zoom windows. Contoh font mono space yang biasa digunakan adalah: courier new dan arial monospaced for sap.
Berikut adalah contoh script untuk konversi data tabel menjadi text dalam satu kolom (dengan kata lain : menggabungkan data tabel yang terdiri beberapa kolom menjadi satu kolom saja).
Copykan script berikut pada module standar, dan buat shortcut untuk menjalankan macro-nya.
Sub convertTableToColumn()
Dim r As Range, tabel As Range, xTabel As Range
Dim x As Integer, y As Long, xMax As Long, yMax As Long
Dim textTabel As String, spMax As Integer, sp As Double
Dim spAwal As Double, textSp As String
Set tabel = Selection
Set r = Application.InputBox( _
prompt:="Pilih Satu Sel Untuk Menempatkan Text Tabel", Type:=8)
spAwal = InputBox("Masukan Jarak Spasi", "", 2)
xMax = tabel.Rows.Count
yMax = tabel.Columns.Count
Application.ScreenUpdating = False
For y = 1 To yMax
spMax = 0
For x = 1 To xMax
Set xTabel = tabel.Range(Cells(x, y), Cells(x, y))
textTabel = Trim(xTabel.Text)
If Len(textTabel) > spMax Then spMax = Len(textTabel)
Next x
For x = 1 To xMax
Set xTabel = tabel.Range(Cells(x, y), Cells(x, y))
textTabel = Trim(xTabel.Text)
sp = spAwal + spMax - Len(textTabel)
textSp = WorksheetFunction.Rept(" ", sp)
If y = 1 Then
textTabel = textTabel & textSp
r.Offset(x - 1, 0).ClearContents
Else
textTabel = textSp & textTabel
End If
r.Offset(x - 1, 0) = r.Offset(x - 1, 0) & textTabel
Next x
Next y
End Sub
Copykan script berikut pada module standar, dan buat shortcut untuk menjalankan macro-nya.
Sub convertTableToColumn()
Dim r As Range, tabel As Range, xTabel As Range
Dim x As Integer, y As Long, xMax As Long, yMax As Long
Dim textTabel As String, spMax As Integer, sp As Double
Dim spAwal As Double, textSp As String
Set tabel = Selection
Set r = Application.InputBox( _
prompt:="Pilih Satu Sel Untuk Menempatkan Text Tabel", Type:=8)
spAwal = InputBox("Masukan Jarak Spasi", "", 2)
xMax = tabel.Rows.Count
yMax = tabel.Columns.Count
Application.ScreenUpdating = False
For y = 1 To yMax
spMax = 0
For x = 1 To xMax
Set xTabel = tabel.Range(Cells(x, y), Cells(x, y))
textTabel = Trim(xTabel.Text)
If Len(textTabel) > spMax Then spMax = Len(textTabel)
Next x
For x = 1 To xMax
Set xTabel = tabel.Range(Cells(x, y), Cells(x, y))
textTabel = Trim(xTabel.Text)
sp = spAwal + spMax - Len(textTabel)
textSp = WorksheetFunction.Rept(" ", sp)
If y = 1 Then
textTabel = textTabel & textSp
r.Offset(x - 1, 0).ClearContents
Else
textTabel = textSp & textTabel
End If
r.Offset(x - 1, 0) = r.Offset(x - 1, 0) & textTabel
Next x
Next y
End Sub
Cara penggunaan prosedur makro ini
- Sorot table yang akan di konversi
- Jalankan macro ini
- Pilih cell tempat dimana table hasil konversi akan ditempatkan
- Ok
- Hasilnya: text table digabung menjadi satu kolom
- Text tabel tersebut (kolom B) selanjutnya dapat dikonversi menjadi text comment dengan prosedur seperti yang sudah saya jelaskan dalam article : Excel Comment - Konversi Text Dari Kolom Menjadi Text Comment
Semoga bermanfaat... :-)
Posting Komentar untuk "Excel Comment - Macro Untuk Konversi Data Tabel Menjadi Text dalam satu Kolom"