Lompat ke konten Lompat ke sidebar Lompat ke footer

Macro Untuk Memindahkan Text Dari Cell Ke Kotak Insert Comment

Menambahkan / insert comment pada microsoft excel kadang cukup membosankan terutama jika jumlahnya banyak dan textnya panjang.  Cara yang sering digunakan biasanya dengan klik kanan pada sel yang akan ditambahkan komentar dan kemudian klik insert comment untuk memunculkan kotak komentar. Selanjutnya komentar diketik secara langsung pada kotak insert comment. 

Bagaimana jika ada data berbentuk tabel yang harus disertakan dalam comment?

Metode  yang sering dilakukan pengguna ms excel umumnya dengan cara mengcopy dulu tabel dari excel ke notepad, kemudian mengeditnya supaya susunan text rapi dan berbentuk tabel.  Selanjutnya text notepad tersebut dicopy ke kotak insert comment. 




Jika anda Jenuh dengan cara biasa yang sangat menguras energi, sebaiknya anda mencoba cara yang satu ini untuk melakukan insert comment dengan cara mengambil text langsung dari sell dan memindahkannya ke dalam kotak komentar

Ya, Dengan macro dan VBA, kita dapat melakukan insert comment dengan cepat dan lebih rapi. Berikut contoh script vba macro untuk konversi text kolom menjadi text komentar (insert comment)


‘----------------------------------------------------------
Sub convertColumnToCmt()
Dim r As Range, kolom As Range, rKolom As Range, tf As TextFrame
Dim cmt As String, x As Integer, y As Long, z As Long
On Error GoTo skipError 'error jika pengguna membatalkan proses
Set kolom = Selection
Set r = Application.InputBox( _
prompt:="Pilih Satu Sel Untuk Menempatkan Komentar", Type:=8)
If r.Cells.Count > 1 Then
    MsgBox "TIDAK BERHASIL! - Silahkan Pilih Satu Sel Saja!"
    Exit Sub
End If
r.ClearComments
r.AddComment.Text Text:=" "
Set tf = r.Comment.Shape.TextFrame
For x = 1 To kolom.Rows.Count
    Set rKolom = kolom.Range(Cells(x, 1), Cells(x, 1))
    cmt = rKolom.Text & Chr(10)
    z = Len(cmt)
    With tf.Characters(y + 1, z).Font
        .Parent.Insert (cmt)
        .Bold = rKolom.Font.Bold
        .Italic = rKolom.Font.Italic
        .Underline = rKolom.Font.Underline
        .Name = rKolom.Font.Name
        .ColorIndex = rKolom.Font.ColorIndex
    End With
    y = y + z
Next x
y = 0
For x = 1 To kolom.Rows.Count
'je:2 kali looping untuk menghindari error pada Excel 2007
    Set rKolom = kolom.Range(Cells(x, 1), Cells(x, 1))
    z = Len(rKolom.Text) + 1
    tf.Characters(y + 1, z).Font.Size = rKolom.Font.Size
    y = y + z
Next x
tf.AutoSize = True
Application.Goto r
Exit Sub
skipError: 'jika pengguna membatalkan proses
End Sub
‘-------------------------------------------------------------


Cara menggunakan prosedur makro ini.

  • Pastikan kode vba tersebut sudah di copy pada module standar
  • Seleksi/sorot range yang mengandung text yang akan dipindahkan ke insert comment (sorot satu kolom saja, tapi bukan entirecolumn).
  •  Jalankan makro ini (Anda bisa membuat shortcut terlebih dahulu untuk menjalankan makro ini supaya lebih mudah).
  • Muncul input box : pilih satu sel untuk menempatkan insert comment
  • klik Ok
  • Hasilnya : text dalam kolom yang disorot akan berpindah ke dalam comment box. Format text menyesuaikan dengan format font dalam kolom yang disorot.

    Dan ini contoh hasilnya:

    Menindahkan Text Cell ke Comment Box

    Cara di atas jika digabung dengan macro lainnya dapat juga digunakan untuk memindahkan tabel kedalam kotak insert comment.  

    Jika kita perhatikan kembali cara diatas dimana kumpulan text yang dapat dipindahkan ke dalam kotak insert comment harus berada dalam satu kolom.  

    Oleh karena itu,  untuk memindahkan tabel ke dalam kotak insert comment , kita harus mengkonversi tabel terlebih dahulu menjadi text dalam satu kolom. 

    Silahkan dibaca caranya dalam artikel: Makro untuk menggabungkan text tabel menjadi satu kolom. 

    Selamat mencoba...:)

    Posting Komentar untuk "Macro Untuk Memindahkan Text Dari Cell Ke Kotak Insert Comment"