saya kebagian tugas memberi remarks pada makro nya
begini :
( semoga tidak terlalu nguawur ..)

Sub UnstructuredTextToTabel()
   ' by hapsari & siti Vi
   ' smg, 1 Oktober 2011
   '---------------------
'  pengumuman beberapa Variable-memory yg akan digunakan dlm mainan ini
   Dim Rng As Range     ' = variable Range yg akan diperosess
   Dim Tbl As Range     ' = variable Range dimana hasil akan dituliskan
   Dim ArStr            ' = Variant yg kemudian dijadikan array penampung
data
                        '   baris pertama tiap set data;  (sebelumnya
                           data dipecah (Split) menjadi beberapa kata)
   Dim Strx As String   ' = hasil TRIM tiap string yg ditemui di tiap baris
ex Tbl
   Dim N As Long        ' = counter, pencacah *index baris* pada Rng  / loop
For N - Next N
   dim r As Long        ' pencacah baris untuk pemandu penulisan Table hasil
   dim p As Integer     ' Angka-Posisi ditemukannya karakter "=" pada tiap
Strx

'  Trap jika terjadi error (karena user mengklik tombol cancel pada
InputBox)
   On Error GoTo Ngisor

'  karena range yg akan diproses tidak dapat diduga secara otomatis
'  (bikaos ada baris kosong didalamnya, maka informasi Letak dan Dimensinya
'  lebih aman kalau ditentukan oleh Manusia User dengan mengisi InputBox
'  Type 8 dm InputBox milik aplikasi excel adalah = object Range)
   Set Rng = Application.InputBox( _
      "Tentukan Range yg akan diproses", _
      "Konversi Unstructured Text to Normal Tabel", _
      Selection.Address, , , , , 8)

'  menentukan letak Tbl (dimana hasil akan dituliskan)
   Set Tbl = Sheets("hasil").Cells(2, 1)
'  mengaktifkan sheet tempat beradanya (parent of) range Tbl
   Tbl.Parent.Activate

'  dimulainya sebuah kalang (loop) dengan counter = n yg bernilai dari 1
'  setiap step menaik 1 sampai mencapai N = tinggi Rng (range yg diproses)
'  For N = 1 To Rng.Rows.Count
'  tiap baris data di Rng di TRIM (dengan fungsi TRIM milik Excel (bukan
milik VBA)
'  karena trim dari excel mampu menghilangkan KELEBIHAN spasi antar kata.
      Strx = WorksheetFunction.Trim(Rng(N, 1))
'  proses hanya akan dilanjutkan ke proses tingkat lebih dalam, jika Strx
berisi data
      If Len(Strx) > 0 Then
'  Jika strx mengandung kata "ALARM " di bagian depannya..
         If Strx Like "ALARM *" Then
'           Strx di Split menjadi beberapa kata dan array kata tsb
'           ditampung oleh variable ArStr
            ArStr = Split(Strx, " ")
'           nilai R dinaikkan 1 point
            r = r + 1
'           baris r pada tabel hasil, Kolom 1 diisi kata ke 2
            Tbl(r, 1) = ArStr(1)   ' Alarm #
'           baris r pada tabel hasil, Kolom 2 diisi kata ke 3
            Tbl(r, 2) = ArStr(2)   ' type
'           dst.... sampai kolom 5 diisi kata ke 6
'           ( Array hasil fungsi Split selalu dimulai dgn Index pertama = 0
)
            Tbl(r, 3) = ArStr(3)   ' severity
            Tbl(r, 4) = ArStr(5)   ' ID
            Tbl(r, 5) = ArStr(6)   ' type alarm
         End If
'        menentukan nilai p (posisi ditemukannya karakter "=" pada Strx
         p = InStr(1, Strx, "=")
'        Jika dlm Strx terdapat "="  maka...
         If p > 0 Then
'           Jika Strx dimulai dengan kata "alarm name..", maka.."
            If LCase(Strx) Like "alarm name*" Then _
'              S*ubString setelah "=*" diisikan ke Tabel hasil,  Baris r,
Kolom 6
               Tbl(r, 6) = Mid(Strx, p + 2, 99)
'           Jika Strx dimulai dengan kata "alarm shield.."  maka
            If LCase(Strx) Like "alarm shield*" Then _
'              ya gitu dech.... seterusnya
               Tbl(r, 7) = Mid(Strx, p + 2, 99)
            If LCase(Strx) Like "to alarm*" Then _
               Tbl(r, 8) = Mid(Strx, p + 2, 99)
            If LCase(Strx) Like "modification*" Then _
               Tbl(r, 9) = Mid(Strx, p + 2, 99)
         End If
      End If
   Next N
*Ngisor:*
End Sub
'-------end of makro--------

note
penjelasan tidak ada artinya jika tanpa melihat workbook & data didalamnya
seperti halnya :
PETANYAAN juga tidak ada artinya jika tidak disertai contoh set data nya
( tapi banyak sekali member yg "hobi"nya tanya** tanpa kirim workbook...)




2011/9/29 dendi wijayatullah <[email protected]>
>
> dear all, mau bertanya sedikit. perkenalkan nama saya dendi.
> saya mau nanya cara memisahkan data dari tabel pertama menjadi seperti
tabel kedua bagaimana ya caranya?
>
> Cara memisahkan data dari begini :
> ALARM  1           Fault     Critical        BSC       2158
Hardware
>           Alarm name  =  SEND_DIV Channel Critical Alarm
>    Alarm shield flag  =  Unshielded
>    To alarm box flag  =  Report
>   Modification flag  =  Unmodified
> ALARM  2           Fault     Critical        BSC       2448
Trunk
>           Alarm name  =  Optical Receive Channel Alarm
>    Alarm shield flag  =  Unshielded
>    To alarm box flag  =  Report
>    Modification flag  =  Unmodified
>
> Jadi begini gan :
>
> Alarm | type | severity alarm | alarm id | type alarm | alarm name
| shield alarm | report alatm | modified alarm
> 1 | Fault | Critical | 2158 | Hardware | SEND_DIV Channel Critical Alarm
| Unshielded | Report | Unmodified
>
> Gimana yah caranya? Pake macro kah? Terimakasih sebelumnya.
>

Kirim email ke