Sunday, October 5, 2014

BelajarVBA 103 - ListBox

Coretan Mr. Kid

Belajar yuk.

Pada pembahasan tentang ComboBox, telah diulas tentang beberapa properti yang sering digunakan. Beberapa properti tersebut antara lain adalah Text, Value, ListIndex, BoundColumn, TextColumn, ColumnCount, dan sebagainya. Sebagian besar properti yang dimiliki oleh ComboBox juga dimiliki oleh ListBox.

Pembahasan kali ini adalah tentang ListBox. Sekilas akan diulang tentang properti yang juga dimiliki oleh ComboBox. Properti yang juga dimiliki oleh ComboBox yang akan turut dibahas kali ini adalah properti ListStyle. Pembahasan akan lebih mengkhususkan ke properti MultiSelect yang hanya dimiliki oleh ListBox. File tentang pembahasan ini dapat diunduh disini.


Sekilas properti yang dimiliki ListBox dan ComboBox

Pembahasan properti ComboBox pada coretan BelajarVBA 102 - ComboBox 02 dibagian bertajuk ComboBox list multi kolom hanya menampilkan satu kolom menggunakan sebuah userform bernama frmNomor3 yang berisi sebuah ComboBox bernama cboProd.
Sumber data ComboBox tersebut adalah range A2:C5 di dalam object sheet bernama Sheet2 seperti yang tampak pada gambar berikut ini.
Kali ini control ComboBox yang ada dalam userform frmNomor3 akan dibuang dan diganti dengan sebuah ListBox. ListBox tersebut akan diatur agar properti (Name), BoundColumn, ColumnCount, dan TextColumn memiliki nilai yang sama dengan yang diatur pada ComboBox, yaitu :
  • (Name) diisi cboProd
  • BoundColumn diisi 2
  • ColumnCount diisi 1
  • TextColumn diisi 1
Setelah seluruh ListBox pengganti telah diatur propertinya, maka userform frmNomor3 bisa dijalankan. Meskipun tidak ada script di dalam userform frmNomor3 yang diubah, userform bisa bekerja seperti semula dengan satu perbedaan yaitu penggunaan ListBox yang menggantikan ComboBox. Hal ini menunjukkan bahwa sebagian besar properti ComboBox juga dimiliki oleh ListBox. Cara penggunaannya, yaitu cara mengambil nilai atau mengisi nilai properti juga memiliki kesamaan. Userform frmNomor3 dalam file BelajarVBA102_02.xlsm dapat dibandingkan dengan yang ada dalam file BelajarVBA103.xlsm.

Membuat ListBox dapat dipilih lebih dari satu item

ListBox memiliki properti yang membuat user bisa memilih banyak item sekaligus. Properti ini bernama MultiSelect. Properti MultiSelect memiliki 3 (tiga) buah opsi, yaitu :
  • Single : bernilai 0 [fmMultiSelectSingle], yaitu hanya dapat memilih satu item (seperti di ComboBox)
  • Multi : bernilai 1 [fmMultiSelectMulti], yaitu bisa memilih banyak item, tetapi dipilih dengan mengklik setiap item
  • Extended : bernilai 2 [fmMultiSelectExtended], yaitu bisa memilih banyak item dengan bantuan tombol SHIFT ataupun CTRL
Pengaturan properti MultiSelect bisa dilakukan saat proses design dengan langsung mengubah nilai properti melalui Properties Window milik VBE. Sedangkan pengaturan dengan menggunakan script adalah dengan syntax :
objectListBox.MultiSelect = nilai_opsi
  • objectListBox : nama listbox atau isi dari properti (Name) maupun variabel yang menyimpan object control ListBox
  • nilai_opsi : salah satu dari 3 (tiga) opsi yang telah dijelaskan di atas, yaitu fmMultiSelectSingle, fmMultiSelectMulti, atau fmMultiSelectExtended
Contoh :
    Sebuah listbox bernama lstMulti akan di-set dengan script agar bisa membuat user memilih lebih dari satu item dengan cara mengklik item dan memanfaatkan tombol SHIFT maupun CTRL.

    Bunyi baris perintahnya adalah :
    lstMulti.MultiSelect = fmMultiSelectExtended

Status terpilih atau tidaknya sebuah item dalam ListBox

Sebuah item yang terpilih (Selected) akan memiliki latar dengan warna tertentu. Jika sebuah item yang sedang dalam keadaan terpilih kemudian diklik, maka statusnya akan berubah menjadi tidak terpilih. Properti yang menyimpan status terpilih atau tidaknya setiap item dalam ListBox adalah properti Selected. Jika nilai dalam properti Selected milik item dengan index tertentu adalah TRUE, maka item listbox pada index tersebut sedang dalam keadaan terpilih. Jika bernilai FALSE, maka item pada index tersebut sedang dalam keadaan tidak terpilih. Properti Selected dapat digunakan untuk memilih atau pun membatalkan pilihan pada suatu item dengan menggunakan script.

Baris perintah untuk mengetahui sebuah item dalam keadaan terpilih atau tidak adalah dengan syntax :
var_boolean_penyimpan = objectListBox.Selected(index)
  • var_boolean_penyimpan : variabel bertipe Boolean yang akan menjadi penyimpan nilai status terpilih atau tidaknya item dengan index tertentu
  • objectListBox : nama listbox atau isi dari properti (Name) maupun variabel yang menyimpan object control ListBox
  • index : nomor index (base 0) item ListBox yang akan dicari ambil nilai status terpilih atau tidaknya
Contoh :
    Ingin mengetahui status terpilih atau tidaknya item ke-5 (index ke-4 karena base 0) dalam sebuah listbox bernama lstMulti. Jika dalam keadaan terpilih, maka akan menampilkan pesan bertuliskan 'Terpilih'. Jika belum terpilih, maka akan menampilkan pesan 'Belum terpilih'.

    Bunyi baris-baris perintahnya adalah :
    Dim bStatus As Boolean
    bStatus = lstMulti.Selected(4)
    IF bStatus=TRUE Then
       Msgbox "Terpilih"
    Else
       Msgbox "Belum terpilih"
    End IF


    Script di atas dapat disederhanakan menjadi :

    IF lstMulti.Selected(4) Then
       Msgbox "Terpilih"
    Else
       Msgbox "Belum terpilih"
    End IF
Sedangkan baris perintah untuk mengubah status sebuah item menjadi terpilih atau tidak terpilih adalah dengan syntax :
objectListBox.Selected(index) = nilai_status_yang_baru
  • objectListBox : nama listbox atau isi dari properti (Name) maupun variabel yang menyimpan object control ListBox
  • index : nomor index (base 0) item ListBox yang akan dicari ambil nilai status terpilih atau tidaknya
  • nilai_status_yang_baru : TRUE/FALSE, yaitu TRUE untuk membuat item dengan index tertentu menjadi dalam keadaan terpilih dan FALSE untuk membuat item dengan index tertentu tersebut tidak terpilih.
Contoh :
    Sebuah listbox bernama lstMulti akan membuat item ke-3 (index bernilai 2 karena base 0) menjadi tidak terpilih.

    Bunyi baris perintahnya adalah :
    lstMulti.Selected(2) = FALSE

Mengetahui jumlah item yang terpilih

Jumlah item yang dipilih oleh user dalam sebuah multiselect listbox didapatkan melalui pembacaan status setiap itemnya. Berarti diperlukan proses loop dari item pertama sampai item terakhir. Dalam proses loop tersebut dilakukan pemeriksaan status terpilih atau tidaknya, yaitu melalui properti Selected. Jika statusnya adalah TRUE, maka variabel penampung jumlah item terpilih ditambah dengan satu.

Contoh :
    Menampilkan kotak pesan berisi jumlah item yang terpilih pada listbox bernama lstMulti.

    Bunyi baris-baris perintahnya adalah :
    Dim lIdx As Long    'variabel loop per item dalam listbox lstMulti
    Dim lTerpilih As Long    'variabel penyimpan jumlah item terpilih

    For lIdx = 0 To lstMulti.ListCount - 1
       IF lstMulti.Selected(lIdx) Then
          lTerpilih = lTerpilih + 1
       End IF
    Next lIdx
    Msgbox "Jumlah item terpilih : " & lTerpilih
Bagi pembaca yang sudah familiar dengan fungsi-fungsi WInAPI, penggunaan fungsi WinAPI bernama SendMessage jauh lebih cepat dibanding menggunakan proses loop di atas.

Memilih seluruh item

Proses memilih atau membatalkan pilihan pada seluruh item dalam listbox juga dilakukan dengan melakukan loop terhadap seluruh item. Di dalam proses loop seluruh item hanya berisi baris perintah untuk mengubah nilai properti Selected pada index tersebut menjadi TRUE (untuk memilih) atau FALSE (untuk membatalkan pilihan).

Contoh :
    Memilih seluruh itam yang ada pada listbox bernama lstMulti.

    Bunyi baris-baris perintahnya adalah :
    Dim lIdx As Long    'variabel loop per item dalam listbox lstMulti

    For lIdx = 0 To lstMulti.ListCount - 1
       lstMulti.Selected(lIdx) = TRUE
    Next lIdx
    Msgbox "Proses selesai." & vbcrlf & "Seluruh item telah terpilih."

Contoh penggunaan listbox yang memanfaatkan properti MultiSelect dapat dilihat di file BelajarVBA103.xlsm pada sheet bernama MultiSelect. Penggunaan control Label juga telah disinggung pada file ini.

;)
Insya Allah pembahasan lebih detil tentang control Label dan TextBox bisa segera terwujud.

<previous | next>

Wednesday, October 1, 2014

cara memindahkan sheet ke workbook lain

info excel blog yang sudah lama vakum dari perbloggingan kembali mengisi artikelnya dengan trik-trik sederhana yang membantu dalam memudahkan pengoperasian microsoft excel. kali ini, akan membagikan trik mengenai cara memindahkan sheet ke workbook lain.

cara memindahkan disini bukan hanya copy-paste saja, melainkan keseluruhan akan tersalin dengan rapi sesuai aslinya. mulai tertarik untuk menyimak? silahkan kawan..

1. buka dokumen excel yang akan dipindahkan ke dokumen excel lain (penggabungan).

2. klik kanan pada sheet yang dipindah, pilih Move or Copy...

image

3. pilih pada To Book :
- jika mau dibuat ke dokumen baru, pilih saja (new book).
- apabila mau dipindahkan, pilih nama file atau dokumen excel tersebut.

image

4. apabila akan melakukan penyalinan (copy), cukup beri tanda centang pada Create a copy.

image

5. klik ok dan lihat hasilnya.

anda tidak perlu capek-capek copy-paste secara manual. kalau tahu caranya pastinya semua akan berjalan sesuai rencana. semoga bermanfaat artikel mengenai cara memindahkan sheet ke workbook lain. cukup simpel bukan.

Friday, August 15, 2014

Belajar Ribbon-X 04


Tabs Baru
Kaserat: NangAgus

Mematikan Tabs (Ribbon) Bawaan Excel
Buka file anda pada saat belajar membuat Button Baru dengan customUI editor. (file tersebut tidak boleh terbuka pada excel. (tutuplah excel sebelum dibuka di CustomUI))

Kita akan mematikan tabs bawaan Microsoft excel.
Ubahlah

      <ribbon startFromScratch="false">
Menjadi
      <ribbon startFromScratch="true">


Selengkapnya kode yang tertulis seperti gambar berikut ini!


Simpan file tersebut, kemudian buka file di dengan Excel,
Semua tab Microsoft excel akan hilang dan hanya ada tab Baru dengan nama Ribbon Baru berisi “Group Baru” dengan beberapa button yang sudah dipilih.



Menambah Tab

Buka Buka File anda dengan customUI editor. (file tersebut tidak boleh terbuka pada excel. (tutuplah excel sebelum dibuka di CustomUI))

Kita akan memunculkan tab Home dan tab Ribbon Baru
Ketikkan kode seperti dibawah ini pada Tabs:

<tab idMso="TabHome" visible="true" />

Selengkapnya kode yang tertulis seperti gambar berikut ini!


Simpan file tersebut, kemudian buka file di dengan Excel,
Yang tampak hanya Tab Home dan Tab “Ribbon Baru”.


Jangan lupa untuk Klik tombol Validate untuk mengecek apakah penulisan script pada custom UI sudah benar atau belum?
Jika penulisan sudah benar akan muncul  tulisan “ Custom UI XML is Well formed!”.


Apabila terdapat ketikan yang salah akan muncul peringatan pada baris keberapa tulisan tersebut yang salah! Sebagai contoh perhatikan pesan berikut ini!


Terdapat ketidak sesuaian pada group antara baris ke-5 dan baris ke-16.

Sebagai Referensi terdapat 26 Tab yang tersedia pada Microsoft excel (Pada File Contoh disini)
Tab tersebut adalah sebagai berikut:

No
Control Name
Control Type
1
TabHome
tab
2
TabInsert
tab
3
TabPageLayoutExcel
tab
4
TabFormulas
tab
5
TabData
tab
6
TabReview
tab
7
TabView
tab
8
TabDeveloper
tab
9
TabAddIns
tab
10
TabPrintPreview
tab
11
TabSmartArtToolsDesign
tab
12
TabSmartArtToolsFormat
tab
13
TabChartToolsDesign
tab
14
TabChartToolsLayout
tab
15
TabChartToolsFormat
tab
16
TabDrawingToolsFormat
tab
17
TabPictureToolsFormat
tab
18
TabPivotTableToolsOptions
tab
19
TabPivotTableToolsDesign
tab
20
TabHeaderAndFooterToolsDesign
tab
21
TabTableToolsDesignExcel
tab
22
TabPivotChartToolsDesign
tab
23
TabPivotChartToolsLayout
tab
24
TabPivotChartToolsFormat
tab
25
TabPivotChartToolsAnalyze
tab
26
TabInkToolsPens
tab

Untuk pengetikan script adalah case sensitive, maka jangan sampai salah mengambil nama tab id.

Untuk Bahasan selanjutnya adalah mengisi Tab dengan Group, Spilt Button, Combo Box dan Togle button.

Lebih baik apabila belajar sedikit demi sedikit dengan waktu yang singkat daripada belajar banyak sekaligus dalam waktu yang lama.

Selamat Belajar.



|<< First                                   <Prev  |  Next>                                a