Featured Post

Lookup Gambar Dengan INDEX MATCH

Apakah Pencarian Gambar bisa dilakukan di excel? Pertanyaan ini sangat menarik sekali untuk dibahas. Jika pembaca mengikuti blog ini, pada ...

Sunday, September 9, 2018

Mengisi Data Pada Beberapa Worksheet Sekaligus

Pada aplikasi excel, kita bisa mengisi data yang sama ke dalam beberapa worksheet sekaligus dengan cara menggabungkan atau grouping worksheet-worksheet tersebut. Grouping worksheet dapat dilakukan secara manual maupun secara otomatis menggunakan kode VBA. Dengan memahami tehnik ini diharapkan dapat membantu kita untuk menghemat waktu ketika harus mengisi data yang sama pada beberapa worksheet.

Grouping worksheet secara manual.


Ikuti langkah-langkah berikut untuk grouping worksheet secara manual, serta untuk mengisi data dan edit format sekaligus pada beberapa worksheet:



  • Pada keyboard, tekan tombol Ctrl, kemudian dengan menggunakan mouse, klik tab worksheet yang akan di-group.



Cara Grouping Worksheet


  • Lakukan isi data pada salah satu sheet yang di-group.
  • Silahkan lihat pada worsheet lainnya dalam group.
  • Maka kita bisa melihat semua sheet dalam group sudah terisi data yang sama.
  • Silahkan lakukan edit format pada salah satu sheet dalam grup dan kemudian lihat hasilnya pada masing-masing worksheet.
  • Maka semua sheet dalam grup akan memiliki format yang sama.
  • Untuk mengembalikan ke mode ungroup, silahkan klik salah satu tab sheet.


Kelemahan Grouping Worksheet secara manual


  • Editing pada sebuah worksheet dalam group akan merubah worksheet lainnya dalam grup, tidak peduli dimana posisi sel yang diisi data atau di-edit. Padahal mungkin kita hanya perlu merubah atau mengisi data yang sama pada range sel tertentu saja.
  • Sangat riskan user lupa melakukan ungroup setelah melakukan isi data yang diperlukan, sehingga tidak menyadari apa yang diedit pada sebuah worksheet ternyata merubah worksheet lainnya. Padahal belum tentu diperlukan.


Grouping worksheet secara otomatis.


Sebagai solusi untuk meniadakan resiko yang tidak diinginkan atas grouping worksheet secara manual, maka disarankan untuk grouping worksheet secara otomatis. Dengan cara ini kita bisa menetapkan grouping worksheet ketika hanya perlu mengedit atau mengisi data pada range tertentu saja. Selain itu kita tidak perlu khawatir kelupaan melakukan ungroup,  karena excel akan mengerjakannya secara otomatis.

Langkah-langkah grouping worksheet secara otomatis.

Anggaplah kita ingin memasukan data yang sama ke dalam sheet1, sheet2 dan sheet 3 pada range B3:E10

  • Pastikan setting macro security sudah enable
  • Klik kanan pada salah satu worksheet yang akan di-grup, misalnya sheet1, kemudian klik View Code.


Cara memunculkan jendela VBA

  • Maka kita akan di bawa ke jendela VBA, modul object Sheet1. Selanjutnya copy code berikut ke dala  modul VBA.


    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Range("B3:E10"), Target) Is Nothing Then
      Me.Select
    Else
      Sheets(Array("sheet1", "sheet2", "sheet3")).Select
    End If
    End Sub



    Untuk lebih jelasnya bisa dilihat pada screenshot di bawah ini.
Modul Worsheet Excel VBA


  • Lakukan hal yang sama pada sheet lainnya yang akan di grup (sheet2 dan sheet3) sehingga semua modul object sheet1, sheet2 dan sheet 3 sudah memiliki kode VBA seperti contoh di atas.
  • Sekarang saatnya untuk menguji hasilnya:
  • Silahkan seleksi salah satu sel dalam range B3:E10 pada salah satu sheet1, sheet2 atau sheet3.  Kemudian seleksi sembarang sel lainnya di luar range B3:E10 dan perhatikan perbedaan reaksi excel.
  • Ketika kita menyeleksi salah satu sel pada range B3:E10 maka otomatis sheet1, sheet2 dan sheet3 akan di-group. Sebaliknya ketika kita menyeleksi sel di luar range B3:E10 maka sheet1, sheet2 dan sheet3 akan di-ungroup.
  • Lakukan isi data atau edit format pada range B3:E10 dan bandingkan hasilnya dengan isi data / edit format pada range diluar B3:E10.
  • Maka data yang sama atau format yang sama hanya akan berlaku jika kita mengedit sel dalam range B3:B10 saja.
  • Hal ini tentu saja sangat berguna untuk memastikan isi data yang sama hanya pada range tertentu saja.



Untuk menentukan sheet dan range spesifik mana yang diinginkan supaya terisi data yang sama, maka kita bisa memodifikasi code sesuai contoh di atas.

Misalnya:
Code macro berikut dapat digunakan untuk grouping secara otomatis sheet1, sheet2, sheet3 dan sheet4 jika posisi aktive cell terletak pada range A1:B10


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Range("A1:B10"), Target) Is Nothing Then
  Me.Select
Else
  Sheets(Array("sheet1", "sheet2", "sheet3","sheet4")).Select
End If
End Sub


Silahkan dicoba dengan cara mengcopy kode tersebut pada ke modul VBA object sheet1, sheet2, sheet3 dan sheet4 sesuai langkah-langkah yang sudah dijelaskan sebelumnya. Kemudian perhatikan hasilnya ketika kita mengedit data pada sel dalam range A1:B10 dan bandingkan dengan hasil edit data pada range lainnya.

Demikian pembahasan singkat mengenai tips mengisi data sekaligus pada beberapa worksheet dengan cara grouping worksheet, baik secara manual maupun otomatis. Semoga bermanfaat.



Sunday, September 2, 2018

Membuat Daftar Isi Otomatis

Halo teman, jumpa lagi dengan je-xcel. Setelah sekian lama vakum menulis karena kesibukan kerja. Alhamdulillah, kali ini saya bisa kembali sedikit berbagi  tips excel.

Dalam kesempatan ini kita akan membahas bagaimana membuat daftar isi atau index worksheet secara otomatis.

Dengan semakin banyaknya lembar kerja atau worksheet pada sebuah file excel, maka mungkin kita akan merasa kesulitan untuk navigasi antar sheet. Nah, untuk itu diperlukan sebuah alat bantu sebuah worksheet berisi list index beserta hyperlinknya yang dapat di-generate secara otomatis.




Membahas mengenai otomatisasi di excel, maka tentunya tidak bisa lepas dari yang namanya VBA. Nah, dalam hal ini kita akan gunakan kode VBA untuk meng-generate list index dan hyperlinknya.

Anggaplah kita memiliki sebuah file excel yang terdiri atas beberapa worksheet berisi data. Kemudian ada sebuah worksheet berisi index data atau daftar isi. Atau lebih jelasnya dapat dilihat dalam screenshot di bawah ini.


Data excel index otomatis


Tugas selanjutnya adalah bagaimana meng-generate daftar isi worksheet index dan membuat hyperlink ke data terkait, serta membuat hyperlink balik dari worksheet data menuju sheet index.

Adapun caranya sangat mudah, cukup ikuti langkah sederhana berikut ini:

  1. Pastikan tab developer pada aplikasi excel anda sudah aktif (excel 2007 atau yang lebih baru)  dan pastikan setting macro security sudah enable.
  2. Klik kanan pada tab sheet index, kemudian klik view code.

    cara masuk ke jendela VBA worksheet
  3. Selanjutnya kita akan dibawa ke jendela VBA seperti terlihat pada gambar berikut:

    Jendela VBA Excel Worksheet
  4. Copy code berikut ke dalam private modul sheet1(index)

    Private Sub Worksheet_Activate()
    Dim ws As Worksheet, index As Integer
    Application.ScreenUpdating = False
    Me.Cells.Clear
    Me.Cells(1, 1).Name = "Index"
    Me.Cells(1, 1).Value = "Index"
    Me.Cells(1, 2).Value = "Keterangan"
    For Each ws In ThisWorkbook.Worksheets
      If ws.Name <> Me.Name Then
        index = index + 1
        Me.Cells(index + 1, 1).Value = index
        ws.Cells(1, 1).Name = "index" & index
        ws.Cells(1, 1).Value = "<< index"
        Me.Hyperlinks.Add Me.Cells(index + 1, 2), "", "index" & index, "Lihat Data", ws.Name
        ws.Hyperlinks.Add ws.Cells(1, 1), "", "index", "Lihat index", "<< Index"
      End If
    Next
    Application.ScreenUpdating = True
    End Sub


    Cara copy code pada vba excel



  5. Kemudian close jendela VBA, selanjutnya kembali ke spreadsheet excel.
  6. Sampai dengan tahap ini, code VBA sudah dapat digunakan untuk meng-generate list index, membuat hyperlink ke sheet target serta membuat link back dari sheet data ke sheet index.
Untuk membuktikan bahwa code VBA dapat bekerja dengan baik, silahkan dicoba cara kerjanya dan lihat hasilnya dengan cara berpindah ke sheet lain selain sheet index, kemudian kembali ke sheet index. Maka secara otomatis pada sheet index akan di-generate daftar isi berupa nomor index dilengkapi keterangannya sesuai nama-nama sheet yang ada dalam workbook excel. Selain itu pada masing-masing keterangan, sudah dilengkapi hyperlink yang mengarah pada worksheet terkait.

Jika perlu menambahkan sheet baru, atau merubah nama sheet data, maka tidak perlu report untuk mengedit list index, karena code VBA akan menyelesaikan tugas ini secara otomatis setiap kali kita mengaktifkan sheet index.

Silahkan dicoba kembali dengan cara menambahkan sheet baru misalnya nama sheetnya “data baru”. Setelah itu, kemudian kembali masuk ke sheet index. Maka kita akan mendapati sheet baru secara  otomatis terdaftar dalam index.

contoh daftar isi dan hyperlink otomatis

Selain itu pada sel A1 dari setiap sheet data akan tercipta secara otomatis hyperlink yang mengarah ke sheet index.

contoh hyperlink back




List index, hyperlink ke sheet data, serta hyperlink balik ke sheet index akan disegarkan secara otomatis setiap kali user masuk atau mengaktifkan sheet index. Disinilah letak keuntungannya sehingga user tidak perlu capek membuat hyperlink secara manual setiap kali ada perubahan pada nama sheet ataupun penambahan sheet baru.

Setelah selesai, maka file excel latihan ini dapat di simpan. Jika menggunakan excel 2007 atau yang lebih baru, jangan lupa untuk save as sebagai  excel macro – enable workbook atau excel binary workbook. Jika tidak, maka code macro akan terhapus dan tidak dapat digunakan.

Catatan: jika code yang dicontohkan dalam tutorial ini tidak bekerja sesuai harapan, maka kemungkinan setting macro security pada aplikasi microsoft excel yang anda gunakan belum pas, sehingga macro tidak diizinkan untuk dijalankan. Silahkan periksa kembali setting macro security nya.

Demikian tips singkat mengenai bagaimana membuat list index atau daftar isi secara otomatis menggunakan VBA pada microsoft excel. Semoga bermanfaat.