Loncat ke daftar isi utama

Bagaimana cara melengkapi otomatis saat mengetik di daftar drop-down Excel?

Untuk daftar drop-down validasi data dengan banyak item, Anda perlu menggulir ke atas dan ke bawah dalam daftar untuk menemukan yang Anda butuhkan atau ketik seluruh kata ke dalam kotak daftar dengan benar. Apakah ada cara untuk membuat daftar drop-down dilengkapi secara otomatis saat mengetik karakter yang sesuai? Ini akan membantu orang bekerja lebih efisien di lembar kerja dengan daftar drop-down di sel. Tutorial ini menyediakan dua metode untuk membantu Anda mencapainya.

Buat daftar drop-down lengkapi otomatis dengan kode VBA
Mudah membuat daftar drop-down lengkapi otomatis dalam 2 detik

Tutorial lainnya untuk daftar drop-down ...


Buat daftar drop-down lengkapi otomatis dengan kode VBA

Harap lakukan hal berikut untuk membuat daftar drop-down pelengkapan otomatis setelah mengetik huruf yang sesuai di sel.

Pertama, Anda perlu memasukkan kotak kombo ke dalam lembar kerja dan mengubah propertinya.
  1. Buka lembar kerja yang berisi sel daftar drop-down yang ingin Anda jadikan pelengkapan otomatis.
  2. Sebelum menyisipkan kotak Kombo, Anda perlu menambahkan tab Pengembang ke pita Excel. Jika tab Pengembang ditampilkan di pita Anda, beralih ke langkah 3. Jika tidak, lakukan hal berikut agar tab Pengembang muncul di pita: Klik File > Opsi untuk membuka Opsi jendela. Di dalam Opsi Excel window, klik Sesuaikan Pita di panel kiri, periksa Pengembang kotak, dan kemudian klik OK tombol. Lihat tangkapan layar:
  3. Klik Pengembang > Menyisipkan > Kotak Kombo (Kontrol ActiveX).
  4. Gambarlah kotak kombo di lembar kerja saat ini. Klik kanan lalu pilih Properties dari menu klik kanan.
  5. Dalam majalah Properties kotak dialog, harap ganti teks asli di (Nama) bidang dengan TempCombo.
  6. Matikan Mode Desain dengan mengklik Pengembang > Mode Desain.
Kemudian, terapkan kode VBA di bawah ini
  1. Klik kanan pada tab lembar saat ini dan klik Lihat kode dari menu konteks. Lihat tangkapan layar:
  2. Di pembukaan Microsoft Visual Basic untuk Aplikasi jendela, silakan salin dan tempel kode VBA di bawah ini ke dalam jendela Kode lembar kerja.
    Kode VBA: Pelengkapan otomatis saat mengetik di daftar drop-down
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Update by Extendoffice: 2020/01/16
        Dim xCombox As OLEObject
        Dim xStr As String
        Dim xWs As Worksheet
        Dim xArr
        
        Set xWs = Application.ActiveSheet
        On Error Resume Next
        Set xCombox = xWs.OLEObjects("TempCombo")
        With xCombox
            .ListFillRange = ""
            .LinkedCell = ""
            .Visible = False
        End With
        If Target.Validation.Type = 3 Then
            Target.Validation.InCellDropdown = False
            Cancel = True
            xStr = Target.Validation.Formula1
            xStr = Right(xStr, Len(xStr) - 1)
            If xStr = "" Then Exit Sub
            With xCombox
                .Visible = True
                .Left = Target.Left
                .Top = Target.Top
                .Width = Target.Width + 5
                .Height = Target.Height + 5
                .ListFillRange = xStr
                If .ListFillRange = "" Then
                    xArr = Split(xStr, ",")
                    Me.TempCombo.List = xArr
                End If
                .LinkedCell = Target.Address
            End With
            xCombox.Activate
            Me.TempCombo.DropDown
        End If
    End Sub
    Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        Select Case KeyCode
            Case 9
                Application.ActiveCell.Offset(0, 1).Activate
            Case 13
                Application.ActiveCell.Offset(1, 0).Activate
        End Select
    End Sub
  3. Tekan lain + Q tombol secara bersamaan untuk menutup Aplikasi Microsoft Visual Basic jendela.

Mulai sekarang, ketika mengklik sel daftar drop-down, daftar drop-down akan muncul secara otomatis. Anda dapat mulai mengetik surat untuk membuat item terkait selesai secara otomatis di sel yang dipilih. Lihat tangkapan layar:

Catatan: Kode ini tidak berfungsi untuk sel yang digabungkan.

Buat daftar drop-down lengkapi otomatis dengan mudah dalam 2 detik

Bagi sebagian besar pengguna Excel, metode VBA di atas sulit dikuasai. Tapi dengan Daftar Drop-down yang Dapat Dicari fitur dari Kutools untuk Excel, Anda dapat dengan mudah mengaktifkan pelengkapan otomatis untuk daftar tarik-turun validasi data kisaran tertentu hanya dalam 2 detik. Terlebih lagi, fitur ini tersedia untuk semua versi Excel.

jenis: Sebelum menerapkan alat ini, harap instal Kutools untuk Excel pertama. Buka unduhan gratis sekarang.

  1. Untuk mengaktifkan pelengkapan otomatis di daftar dropdown Anda, pertama-tama pilih rentang dengan dropdown. Kemudian, navigasikan ke Kutools tab, pilih Daftar Drop-down > Jadikan Daftar Drop-down Dapat Dicari, Popup Otomatis.
  2. Dalam majalah Jadikan Daftar Drop-down Dapat Dicari kotak dialog, klik OK untuk menyimpan pengaturan.
Hasil

Setelah konfigurasi selesai, mengklik sel daftar drop-down dalam rentang yang ditentukan akan memunculkan kotak daftar. Saat memasukkan karakter, selama satu item sama persis, seluruh kata akan segera disorot dalam kotak daftar dan dapat diisi ke dalam sel daftar drop-down hanya dengan menekan tombol Enter.

Note: Untuk menerapkan fitur ini, silakan unduh dan instal Kutools untuk Excel Pertama. Atau kamu bisa klik untuk mengetahui lebih banyak tentang fitur ini.

Artikel terkait:

Bagaimana cara membuat daftar drop-down dengan beberapa kotak centang di Excel?
Banyak pengguna Excel cenderung membuat daftar drop-down dengan beberapa kotak centang untuk memilih beberapa item dari daftar setiap kali. Sebenarnya, Anda tidak dapat membuat daftar dengan beberapa kotak centang dengan Validasi Data. Dalam tutorial ini, kami akan menunjukkan kepada Anda dua metode untuk membuat daftar drop-down dengan beberapa kotak centang di Excel. Tutorial ini memberikan metode untuk memecahkan masalah tersebut.

Buat daftar drop-down dari buku kerja lain di Excel
Sangat mudah untuk membuat daftar drop-down validasi data di antara lembar kerja dalam buku kerja. Tetapi jika daftar data yang Anda perlukan untuk validasi data ada di buku kerja lain, apa yang akan Anda lakukan? Dalam tutorial ini, Anda akan belajar cara membuat daftar drop fown dari workbook lain di Excel secara detail.

Buat daftar drop-down yang dapat dicari di Excel
Untuk daftar drop-down dengan banyak nilai, menemukan yang tepat bukanlah pekerjaan yang mudah. Sebelumnya kami telah memperkenalkan metode pengisian otomatis daftar drop-down saat memasukkan huruf pertama ke dalam kotak drop-down. Selain fungsi pelengkapan otomatis, Anda juga dapat membuat daftar drop-down dapat dicari untuk meningkatkan efisiensi kerja dalam menemukan nilai yang tepat dalam daftar drop-down. Untuk membuat daftar drop-down dapat dicari, coba metode dalam tutorial ini.

Mengisi otomatis sel lain saat memilih nilai di daftar drop-down Excel
Katakanlah Anda telah membuat daftar drop-down berdasarkan nilai dalam rentang sel B8: B14. Saat Anda memilih nilai apa pun dalam daftar turun bawah, Anda ingin nilai yang sesuai dalam rentang sel C8: C14 secara otomatis terisi dalam sel yang dipilih. Untuk memecahkan masalah, metode dalam tutorial ini akan membantu Anda.

Tutorial lainnya untuk daftar drop-down ...

Alat Produktivitas Kantor Terbaik

馃 Kutools AI Ajudan: Merevolusi analisis data berdasarkan: Eksekusi Cerdas   |  Hasilkan Kode  |  Buat Rumus Khusus  |  Analisis Data dan Hasilkan Grafik  |  Aktifkan Fungsi Kutools...
Fitur Populer: Temukan, Sorot, atau Identifikasi Duplikat   |  Hapus Baris Kosong   |  Gabungkan Kolom atau Sel tanpa Kehilangan Data   |   Putaran tanpa Formula ...
Pencarian Super: VLookup Beberapa Kriteria    VLookup Nilai Berganda  |   VLookup di Beberapa Lembar   |   Pencarian Fuzzy ....
Daftar Drop-down Lanjutan: Buat Daftar Drop Down dengan Cepat   |  Daftar Drop Down yang Bergantung   |  Multi-pilih Drop Down List ....
Manajer Kolom: Tambahkan Jumlah Kolom Tertentu  |  Pindahkan Kolom  |  Alihkan Status Visibilitas Kolom Tersembunyi  |  Bandingkan Rentang & Kolom ...
Fitur Unggulan: Fokus Kisi   |  Tampilan Desain   |   Bar Formula Besar    Manajer Buku Kerja & Lembar   |  Perpustakaan Sumberdaya (Teks otomatis)   |  Pemetik tanggal   |  Gabungkan Lembar Kerja   |  Enkripsi/Dekripsi Sel    Kirim Email berdasarkan Daftar   |  Filter Super   |   Filter Khusus (filter tebal/miring/coret...) ...
15 Perangkat Teratas12 Teks Tools (Tambahkan Teks, Hapus Karakter, ...)   |   50 + Grafik jenis (Gantt Chart, ...)   |   40+ Praktis Rumus (Hitung usia berdasarkan ulang tahun, ...)   |   19 Insersi Tools (Masukkan Kode QR, Sisipkan Gambar dari Jalur, ...)   |   12 Konversi Tools (Angka ke Kata, Konversi Mata Uang, ...)   |   7 Gabungkan & Pisahkan Tools (Lanjutan Gabungkan Baris, Pisahkan Sel, ...)   |   ... dan banyak lagi

Tingkatkan Keterampilan Excel Anda dengan Kutools for Excel, dan Rasakan Efisiensi yang Belum Pernah Ada Sebelumnya. Kutools for Excel Menawarkan Lebih dari 300 Fitur Lanjutan untuk Meningkatkan Produktivitas dan Menghemat Waktu.  Klik Di Sini untuk Mendapatkan Fitur yang Paling Anda Butuhkan...

Deskripsi Produk


Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Meningkatkan produktivitas Anda sebesar 50%, dan mengurangi ratusan klik mouse untuk Anda setiap hari!
Comments (325)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi, many thanks for this material. It helped a lot.
This comment was minimized by the moderator on the site
Hello,

following on from my last comment:

I'm setting up 'standard' rows with the dropdown lists in them. These I'm wanting to copy below into an extensive spreadsheet.
Unfortunately the dropdown's don't copy down when I do that after using the VBA.
Is there a way to do whats described above?

Cheers,
Catherine
This comment was minimized by the moderator on the site
Hi Catherine,
The autocomplete drop-down lists generated by VBA code cannot be copied. You can only copy selected items that are displayed in the drop-down cell. Sorry for the inconvenience.
This comment was minimized by the moderator on the site
Hello,

Have implemented this successfully, so thank you for this page and code.
But now I have an associated problem...:

After doing all of the above points, the code works as described, but I cannot do any undo/redo actions in the entire spreadsheet.
Is there a way to turn this combo box on for when I want to work with the dropdowns and off for when I want to work in other cells? so that the undo/redo actions are possible again?
and note, yes I have turned the design mode off after doing the above steps, but it still doesn't help the problem.

Cheers,
Catherine
This comment was minimized by the moderator on the site
Hi Catherine Foley,
If you want to use the undo operation on cells other than the drop-down cells, the following VBA code can help you. Please give it a try.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Update by Extendoffice: 2022/09/22
    Dim xCombox As OLEObject
    Dim xStr As String
    Dim xWs As Worksheet
    Dim xArr
    
    On Error Resume Next

    Set xWs = Application.ActiveSheet
    
    Set xCombox = xWs.OLEObjects("TempCombo")
    If Target.Validation.Type <> 3 Then
        If xCombox.Visible Then
            xCombox.Visible = False
        End If
        Exit Sub
    End If
    
    With xCombox
        .ListFillRange = ""
        .LinkedCell = ""
'        .Visible = False
    End With

    Target.Validation.InCellDropdown = False
    Cancel = True
    xStr = Target.Validation.Formula1
    xStr = Right(xStr, Len(xStr) - 1)
    If xStr = "" Then Exit Sub
    With xCombox
        .Visible = True
        .Left = Target.Left
        .Top = Target.Top
        .Width = Target.Width + 5
        .Height = Target.Height + 5
        .ListFillRange = xStr
        If .ListFillRange = "" Then
            xArr = Split(xStr, ",")
            Me.TempCombo.List = xArr
        End If
        .LinkedCell = Target.Address
    End With
    xCombox.Activate
    Me.TempCombo.DropDown

End Sub
Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case KeyCode
        Case 9
            Application.ActiveCell.Offset(0, 1).Activate
        Case 13
            Application.ActiveCell.Offset(1, 0).Activate
    End Select
End Sub
This comment was minimized by the moderator on the site
I hope now it will be upload
This comment was minimized by the moderator on the site
This code works really well for a single drop down. However, if I have 5 dropdowns using the same list of values but they need to operate independently of each other how is that accomplished? Despite my best efforts, if I put more than one combo box on the page, any selection is one is mirrored in the other.
This comment was minimized by the moderator on the site
Hi Mbuchmeier,Only need one combo box on the page. The code works on all drop-down lists in current page. You just need to manually click on the drop-down list cell to activate the combo box.
This comment was minimized by the moderator on the site
Hi crystal,
I am working with the combo box (The VBA code from 2021/11/05). It is working great and very useful but there are 2 issues:1. Issue #1: Usually when you work on any cell in Excel, there is indication on the row number which indicate which row you work about. When the combo box is opened this indication is missing2.  Issue #2: When the combo box is opened in the last column of the dynamic table, then it isn't  working as usual: when I select value from the list, the cell remain empty until I move the cursor to another cell
Attached screenshot.
Thank in advance
This comment was minimized by the moderator on the site
Hi Yoni,Thanks for your feedback. For the issues you mentioned:1. Issue #1: Excel does not highlight the row number when selecting an object in the worksheet. Since we use a combo box to replace the data validation drop-down list to handle the autocomplete operation, we can't show the indication in this case;2. Issue #2: I have tried as you described, but the problem cannot be reproduced. The screenshot you attached does not display, you need to save the screenshot and uplode it via the "Upload files" button below.
This comment was minimized by the moderator on the site
Hi Crystal,Thanks a lot for your response. Attached the screenshot. hope it will work now
This comment was minimized by the moderator on the site
Hi Yoni,Sorry for the inconvenience. The screenshot you uploaded is still not shown on the page. You need to save the screenshot on your disk in advance and then uplode it via the "Upload files" button. See the attached screenshot.
This comment was minimized by the moderator on the site
will, thank you is not enugh :::: alot of thank you then ;;;;; that worked like magic :)
This comment was minimized by the moderator on the site
Yeah, basically completely useless.  Want the cell to auto-complete when typing in a cell using list data validation.Tried this, and now I have to start over from scratch because I can't Undo it.  Thanks.Also loaded with syntax errors.
This comment was minimized by the moderator on the site
It works as it should be except for two things, first, there is no validation after insertion. i.e. if I typed anything at the combo then clicked enter it will accept the typed value while it should not do this since the data validation is being used to prevent such behaviors and make sure that the entered data is from selected range. Second, at the data validation list, sometimes I use big range with empty cells and select ignore empty at validation list but the combo takes all the range and shows it, will be nice to remove the empty cells from the combo range.
Thanks & hope you can implement these things to make it perfect.
This comment was minimized by the moderator on the site
Hi, AhmedThe VBA below helps to solve the problem of blank cells. Since the Combo box accepts the value that are not in the list, we still can't find a way to solve this problem. Sorry for the inconvenience.
<div data-tag="code">Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Update by Extendoffice: 2021/11/05
Dim xCombox As OLEObject
Dim xStr As String
Dim xWs As Worksheet
Dim xArr, xArr1
Dim xRg As Range
Dim xSrc As Variant
Dim xI, xJ, xIndex, xCount As Integer

Set xWs = Application.ActiveSheet
On Error Resume Next
Set xCombox = xWs.OLEObjects("TempCombo")
With xCombox
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
End With
If Target.Validation.Type = 3 Then
Target.Validation.InCellDropdown = False
Cancel = True
xStr = Target.Validation.Formula1
xStr = Right(xStr, Len(xStr) - 1)
If xStr = "" Then Exit Sub
Set xRg = Range(xStr)
If xRg Is Nothing Then
xArr1 = Split(xStr, ",")
Else
ReDim xArr1(0 To xRg.Count - 1)
For xI = 0 To xRg.Count - 1
xArr1(xI) = xRg.Item(xI + 1).Value
Next
End If
xI = 0
xCount = UBound(xArr1) + 1
For xJ = 0 To UBound(xArr1)
If Replace(xArr1(xJ), " ", "") = "" Then xCount = xCount - 1
Next
ReDim xArr(0 To xCount - 1)
xIndex = 0
For xJ = 0 To UBound(xArr1)
If Replace(xArr1(xJ), " ", "") <> "" Then
xArr(xIndex) = xArr1(xJ)
xIndex = xIndex + 1
End If
Next
xStr = ""
With xCombox
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 5
.Height = Target.Height + 5
.ListFillRange = xStr
If .ListFillRange = "" Then
'xArr = Split(xStr, ",")
Me.TempCombo.List = xArr
End If
.LinkedCell = Target.Address
End With
xCombox.Activate
Me.TempCombo.DropDown
End If
End Sub
Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 9
Application.ActiveCell.Offset(0, 1).Activate
Case 13
Application.ActiveCell.Offset(1, 0).Activate
End Select
End Sub
This comment was minimized by the moderator on the site
Hi Crystal,
I am working with the combo box (The VBA code from 2021/11/05). It is working great and so useful! thanks a lot.
I found the source of my problem. There was a line of freeze panes which override the combo box.
The only problem now is that the Undo is not working. Any idea?
Thanks in advanced,
Yoni
This comment was minimized by the moderator on the site
Hi,
The code does not support Undo. Sorry for the inconvenience.
This comment was minimized by the moderator on the site
Thanks. Maybe do you know why Worksheet_Change event is not firing once I choose value from the combo box?
This comment was minimized by the moderator on the site
Hi, could you please doublecheck this code, when I use it instead of the dropdown list appearing, the source for the dropdown appears instead. This is the exact function I want, could you please fix it.
This comment was minimized by the moderator on the site
If you use a named range or something similar, like I have with a table column, it will display the named range name instead of the values in that named range. To get what you want, you need to change the xStr to display the worksheet range of that named range, since the .ListFillRange does not take in named ranges directly. This should accomplish it : dim RangeAddress as String: RangeAddress = Range(YourNamedRange).addressand then make the xStr something like this: xStr = "YourWorksheetNameWithTheNamedRangeInIt!" & RangeAddress (important: add the '!' for the sheet reference)
This will make your xStr look something like: NamedRangeSheet!$A$1:$A$5
xStr = Right(xStr, Len(xStr) - 1)

If .ListFillRange = "" Then
xArr = Split(xStr, ",")
Me.TempCombo.List = xArr
End If

with these adjustments your combobox should display the list values instead of the source
This comment was minimized by the moderator on the site
Hi Syu,Sorry I don't quite understand your description. Can you try to be more specific of it?After applying the VBA code mentioned in the above method, when the cell with the data validation drop-down list is checked, the drop-down list turn into a combo box, and then all the items in the list are listed. 
This comment was minimized by the moderator on the site
do you have an example file please?
This comment was minimized by the moderator on the site
Hello. The code is very cool. Please make sure that the formula "INDIRECT" is carried out and displayed. It is very necessary
This comment was minimized by the moderator on the site
The code is not working for a validation list which is created by vba code and the source is a named range
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
Rate this post:
0   Characters
Suggested Locations