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...:)

Comments

  1. kalo dari comment ke cell gimana mas?

    ReplyDelete
  2. Halo mba LIA anggaplah kita ingin mengcopy text comment dari activecell ke CELL sebelah kanannya
    sub ambilKomen()
    on error resume next
    activecell.offset(0,1).value = activecell.comment.text
    end sub

    ReplyDelete
  3. Yang ini musti praktik langsung sm Bapak sblm budgeting mulai sibuk...Bisa khan pak??

    ReplyDelete
  4. Yang ini musti praktik langsung sm Bapak sblm budgeting mulai sibuk...Bisa khan pak??

    ReplyDelete
    Replies
    1. Sy sudah buat tool nya pak : income-c
      AddIn nya juga ada, klw mau

      Delete
  5. mass jika kita ingin meng-copy dari comment dalam suatu range menjadi text dalam suatu range, tetapi hasil copy an nya hanya text dalam commentnya saja bagaimana ya ?

    ReplyDelete
    Replies
    1. Contoh : untuk mengcopy text comment dari range sel ke range sel sebelah kanannya


      Sub ambilKomentar()
      Dim sel As Range
      For Each sel In Selection
      If Not sel.Comment Is Nothing Then
      sel.Offset(0, 1).Value = sel.Comment.Text
      End If
      Next
      End Sub

      Delete

Post a Comment

Terimakasih sudah berkunjung dan membaca blog ini. Silahkan berkomentar.

Popular posts from this blog

Rumus Excel Tidak Berfungsi ? Inilah Penyebabnya!

Memahami Rumus VLOOKUP Dengan Studi Kasus

Fungsi SUM dan Rumus Penjumlahan Pada Excel