Untuk membuat autocomplete pada textbox dengan mengambil data pada range Anda harus membuat sedikit trik coding. Langsung saja misalkan saya memiliki data seperti berikut ini
Data dari range A1:A14 merupakan data yang nantinya akan dijadikan list yang akan ditampilkan pada textbox jika ditemukan data yang sama antara textbox dengan range tersebut. Langkah berikutnya kita akan membuat userform dan menambahkan textbox serta combobox. Silakan buat seperti desain berikut ini
Langkah berikutnya kita akan membuat textbox dengan prosedur AutoChange dan tuliskan script berikut
Private Sub TextBox1_Change()
Dim Otomatis As String
Dim Template As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Template = Me.TextBox1.Text
AlamatRange.Value = Me.TextBox1.Text
Otomatis = AlamatRange.AutoComplete(Me.TextBox1.Text)
If Len(Otomatis) > 0 Then
With Me.TextBox1
.Text = Otomatis
.SelStart = Len(Template)
.SelLength = Len(Otomatis)
End With
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Tambahkan juga Open Explicit diatas script tersebut
Option Explicit
Dim AlamatRange As Range
Dim JumlahKarakter As Integer
Jika sudah tambahkan prosedur ketika textbox di enter
Private Sub TextBox1_Enter()
Set AlamatRange = Worksheets("Sheet1").Range("a35536").End(xlUp).Offset(1, 0)
End Sub
Lalu tambahkan juga ketika keluar dari fokus textbox
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)Ok, mari kita coba coding yang telah dituliskan tadi dan hasilnya adalah apabila Anda mengetikkan text pada textbox yang hampir mendekati nama yang ada di list maka secara otomatis textbox menampilkannya tanpa mengetikkan nama secara lengkap
AlamatRange.ClearContents
End Sub
Perhatikan ketika saya mengetikkan kata "Le" maka textbox akan menuliskan sendiri dengan block area yaitu nama "Leli Nurlaeli" dan perhatikan pula anak panah yang menunjukan nama "Leli Nurlaeli" yang ada pa list data akan tertulis secara otomatis dan jika di enter maka nama tersebut akan dihapus kembali karena ini menggunakan coding
AlamatRange.ClearContents
Nah, itulah cara membuat textbox Autocomplete, silakan dikembangkan untuk membuat aplikasi yang berguna, semoga bermanfaat.
Silakan lihat Belajar Membuat Textbox pada UserForm
Private Sub TextBox1_Change()
BalasHapus'Option Explicit
Dim AlamatRange As Range
Dim JumlahKarakter As Integer
Dim Otomatis As String
Dim Template As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Template = Me.TextBox1.Text
AlamatRange.Value = Me.TextBox1.Text
Otomatis = AlamatRange.AutoComplete(Me.TextBox1.Text)
If Len(Otomatis) > 0 Then
With Me.TextBox1
.Text = Otomatis
.SelStart = Len(Template)
.SelLength = Len(Otomatis)
End With
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Private Sub TextBox1_Enter()
Set AlamatRange = Worksheets("Sheet2").Range("a35536").End(xlUp).Offset(1, 0)
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
AlamatRange.ClearContents
End Sub
nda mau berfungsi gan
BalasHapus"object variable or wit block not set"
nga bisa
BalasHapus