Coba code berikut:
Sub TransformTabel()
    Dim rgAsal As Range, rgTarget As Range
    Const LebarTabelAsal As Integer = 2
    Const SPASI As String = " "
    'menentukan range target atau tujuan
    Set rgTarget = Range("E1")
    'membersihkan range target
    rgTarget.Resize(10000, 100).Clear
    'menentukan range/tabel asal
    Set rgAsal = Range("A2") 'data pertama
    'block ke bawah dari data pertama
    Set rgAsal = Range(rgAsal, rgAsal.End(xlDown))
    'block ke kanan menjadi dua kolom
    Set rgAsal = rgAsal.Resize(, LebarTabelAsal)

    'membaca data asal dimulai dari kolom pertama
    Dim rg As Range
    Dim i As Integer, j As Integer
    Dim vIsi As Variant, v As Variant
    Dim strHeader As String
    'setting agar operasi lebih cepat
    Application.ScreenUpdating = False
    i = -1
    For Each rg In rgAsal.Columns(1).Cells
        i = i + 1
        'nama kolom header A B C D
        strHeader = rg.Value
        'mencetak header di range tujuan atau range target
        rgTarget.Offset(, i) = strHeader
        'mengambil isi data tiap header
        vIsi = Split(rg.Offset(, 1), SPASI)
        'membaca data satu per satu dan mencetak ke target tujuan
        j = 0
        For Each v In vIsi
            j = j + 1
            rgTarget.Offset(j, i) = v
        Next
    Next
    Application.ScreenUpdating = True

End Sub



From: [email protected] [mailto:[email protected]] On 
Behalf Of [email protected]
Sent: Thursday, April 10, 2014 2:56 AM
To: [email protected]
Subject: [belajar-excel] Tanya copy data ke baris kanan [1 Attachment]

  
Minta tolong dibantu pak admin atau rekan semua permasalahan saya.. karena 
masih tahap belajar VBA.. 
dari pencarian di google ada tapi dia otomatis terkopi ke bawah seluruhnya... 
atas bantuannya saya ucapkan terima kasih 

Sub COPAS() 

    Dim fromCol As String 
    Dim toCol As String 
    Dim fromRow As String 
    Dim toRow As String 
    Dim inVal As String 
    Dim outVal As String 
    Dim commaPos As Integer 

 Application.ScreenUpdating = False 

    ' Copy from column B to column E.' 
    fromCol = "B" 
    toCol = "E" 
    fromRow = "1" 
    toRow = "1" 

    ' Go until no more entries in column B.' 
    inVal = Range(fromCol + fromRow).Value 
    While inVal <> "" 

        ' Go until all sub-entries used up.' 
        While inVal <> "" 
            Range(fromCol + fromRow).Select 

            ' Extract each subentry.' 
            commaPos = InStr(1, inVal, " ") 
            While commaPos <> 0 

                ' and write to output column.' 
                outVal = Left(inVal, commaPos - 1) 
                Range(toCol + toRow).Select 
                Range(toCol + toRow).Value = outVal 
                toRow = Mid(Str(Val(toRow) + 1), 2) 

                ' Remove that sub-entry.' 
                inVal = Mid(inVal, commaPos + 1) 
                While Left(inVal, 1) = " " 
                    inVal = Mid(inVal, 2) 
                Wend 
                commaPos = InStr(1, inVal, " ") 
            Wend 

            ' Get last sub-entry (or full entry if no commas).' 
            Range(toCol + toRow).Select 
            Range(toCol + toRow).Value = inVal 
            toRow = Mid(Str(Val(toRow) + 1), 2) 
            inVal = "" 
        Wend 

        ' Advance to next source row.' 
        fromRow = Mid(Str(Val(fromRow) + 1), 2) 
        Range(fromCol + fromRow).Select 
        inVal = Range(fromCol + fromRow).Value 
    Wend 
  
End Sub 

Attachment: Pisah.xlsm
Description: application/vnd.ms-excel.sheet.macroenabled.12

Kirim email ke