Autocomplete Textbox pada UserForm

Bagaimana jika membuat data ketika entri pada textbox yang ada di UserForm akan otomatis menghasilkan data yang sama jika ditemukan di list yang ada di workshee? Jika Anda menggunakan combobox mungkin akan bisa dilakukan tanpa mengetikkan atau membuat module untuk autocomplete karena combobox sudah otomatis.

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)
  AlamatRange.ClearContents
End Sub
 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



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

3 Responses to "Autocomplete Textbox pada UserForm"

  1. Private Sub TextBox1_Change()
    '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

    BalasHapus
  2. nda mau berfungsi gan
    "object variable or wit block not set"

    BalasHapus

Tulisan ini Bermanfaat..? Silakan berkomentar sesuai topik artikelnya, tidak dianjurkan menggunakan kata-kata yang dapat menimbulkan hal negatif. Mohon maaf apabila tidak memiliki etika akan Admin HAPUS tanpa pemberitahuan kembali. Terimakasih... salam Exceler