Pendahuluan - VBA Quicksort
VBA Macro Excel Quicksort adalah cara cepat untuk mengurutkan array VBA pada Variabel New Collection. VBA Macro Excel Quicksort dalam tutorial ini lebih mudah untuk digunakan dan berhasil di eksekusi daripada makro jenis macro sort yang ditunjukkan pada situs-situs tutorial excel lainnya.
Data pertama akan dibandingkan dengan data kedua hingga data terakhir jika data pertama tersebut lebih kecil daripada data kedua maka data pertama akan dijadikan sebagai data temporary (vTemp).
Pemahaman Algoritma - VBA Quicksort
Agar memahami proses Coding Vba Macro Excel QuickSort, akan lebih baik jika kita memahami dulu proses Algoritma sehingga pada saat penerapannya tidak bingung. Adapun langkah-langkah Algoritma yang dimaksuda adalah:Data pertama akan dibandingkan dengan data kedua hingga data terakhir jika data pertama tersebut lebih kecil daripada data kedua maka data pertama akan dijadikan sebagai data temporary (vTemp).
Setelah itu data pertama tadi akan dihapus pada Collection sedangkan vTemp akan disimpan sebelum data terbesar.
Proses penghapusan data tadi mengakibatkan proses perbandingan tidak akan dibandingkan keseluruh susunan data awal karena salah satu data telah dihapus atau di remove. Namun bukan berarti dihapus data Arraynya hanya untuk disimpan sementara.
Demikianlah Algoritma garis besarnya, mohon maaf tidak dapat diterangkan seluruhnya dikarenakan sebuah proses tidak mudah untuk dijelaskan.
Contoh sederhannya yang mungkin dapat dipahami dengan mudah adalah pengurutan huruf-huruf yang tersusun pada Range "A2" hingga "A13" akan di simpan hasilnya ke Range "B2" hingga "B13" atau pada kolom DATA HASIL SORT.
Script untuk Quicksort VBA Macro Excelnya adalah sebagai berikut:
Contoh Kasus - VBA Quicksort
Contoh sederhannya yang mungkin dapat dipahami dengan mudah adalah pengurutan huruf-huruf yang tersusun pada Range "A2" hingga "A13" akan di simpan hasilnya ke Range "B2" hingga "B13" atau pada kolom DATA HASIL SORT.
Script untuk Quicksort VBA Macro Excelnya adalah sebagai berikut:
'SORT HTTPS://AGUNGPANDUAN.COM
Public Sub QuickSort(coll As Collection, first As Long, last As Long)
Dim vCentreVal As Variant, vTemp As Variant
Dim lTempLow As Long
Dim lTempHi As Long
lTempLow = first
lTempHi = last
'Inputkan index item pertama (1+1/2) = 1
vCentreVal = coll((first + last) \ 2)
'jalankan proses do while pada saat lTempLow lebih kecil atau sama dengan lTempHi (index terakhir)
Do While lTempLow <= lTempHi
'membandingkan data kedua hingga terakhir terhadap data pertama
Do While coll(lTempLow) < vCentreVal And lTempLow < last
'ditemukanlah jumlah data yang paling kecil pada hingga index terakhir
lTempLow = lTempLow + 1
Loop
'membandingkan data terakhir hingga kedua terhadap data pertama
Do While vCentreVal < coll(lTempHi) And lTempHi > first
'ditemukanlah jumlah data yang paling besar
lTempHi = lTempHi - 1
Loop
'jika jumlah data paling kecil lebih kecil atau sama dengan jumlah data paling besar maka
If lTempLow <= lTempHi Then
' Swap values
vTemp = coll(lTempLow)
coll.Add coll(lTempHi), After:=lTempLow
coll.Remove lTempLow
coll.Add vTemp, Before:=lTempHi
coll.Remove lTempHi + 1
' Move to next positions
lTempLow = lTempLow + 1
lTempHi = lTempHi - 1
End If
Loop
If first < lTempHi Then QuickSort coll, first, lTempHi
If lTempLow < last Then QuickSort coll, lTempLow, last
End Sub
Sedangkan Script untuk mengperlihatkan hasilnya dengan mengklik cell pada Range "B1" adalah sebagai berikut:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim CollectionBaru As New Collection
If Not Intersect(Target, Range("B1")) Is Nothing Then
For Each Value In Range("A2:A13")
CollectionBaru.Add (Value)
Next Value
'SORT
QuickSort CollectionBaru, 1, CollectionBaru.Count
For i = 1 To CollectionBaru.Count
Cells(i + 1, 2) = CollectionBaru.Item(i)
Next i
End If
End Sub
Untuk cara menghapus DATA DUPLIKAT atau REMOVE DUPLICATE
Semoga Bermanfaat
Thank you for visiting https://www.agungpanduan.com situs belajar Bordir Wilcom e dan Tajima
Share This :
Sangat bermanfaat terimakaih...
BalasHapusTingkatan excell yg lebih tinggi nih..
BalasHapusIni yang dicari cari
BalasHapusTerimakasih gan,sangat bermanfaat,jadi tambah semangat belajarnya...hehe
BalasHapusKunjungi juga..
Harunup.blogspot.com
Mantap gan. Saya request donk buat program vb net
BalasHapusJujur pak saya masih bingung, tapi setelah saya membaca artikel ini lumayan laah dapet pembelajaran
BalasHapusMantap
BalasHapusMantap nih tutorialnya
BalasHapus