KutoolsforOffice — Tek çözüm, beş güçlü araç.Daha az çabayla daha fazlasını başarmak.

Excel'de yazarken bir metin kutusunu nasıl otomatik olarak tamamlarsınız?

YazarSiluvia Değiştirme Tarihi

Varsayılan olarak Excel, geçerli çalışma sayfasındaki hücrelere girdiğiniz içerikleri hatırlar ve yeni bir hücreye ilgili başlangıç harfini yazdığınızda bu içeriği otomatik olarak tamamlar. Peki ya çalışma sayfasına girdiğiniz tüm içeriklerin bir metin kutusunda (ActiveX Denetimi) otomatik olarak tamamlanmasını istiyorsanız ne yapmalısınız? Bu makale, bir metin kutusuna başlangıç harfinizi yazarken otomatik tamamlama özelliğini etkinleştiren pratik bir VBA çözümü sunar.

VBA koduyla yazarken metin kutusunu otomatik tamamlama


VBA koduyla yazarken metin kutusunu otomatik tamamlama

Otomatik tamamlama özelliğini etkinleştirmek ve bir metin kutusuna başlangıç harfi yazmaya başladığınızda önerileri almak için aşağıdaki adımları uygulayın.

1. Lütfen bir metin kutusu eklemek için Geliştirici > Ekle > Metin Kutusu (ActiveX Denetimi) seçeneğine tıklayın. Ekran görüntüsüne bakın:

Metin Kutusu eklemek için tıklayın

2. Ardından, geçerli çalışma sayfasına bir liste kutusu eklemek için Geliştirici > Ekle > Liste Kutusu (ActiveX Denetimi) seçeneğine tıklayın. Ekran görüntüsüne bakın:

Liste Kutusu eklemek için tıklayın

3. Sayfa sekmesine sağ tıklayın ve ardından aşağıda gösterilen ekran görüntüsündeki gibi bağlam menüsünden Kodu Görüntüle seçeneğine tıklayın.

Sağ tıklama menüsünden Kodu Gör'e gidin

4. Microsoft Visual Basic for Applications penceresinde, aşağıdaki VBA kodunu Kod penceresine kopyalayıp yapıştırın. Ardından Araçlar > Başvurular seçeneğine tıklayın ve Microsoft Scripting Runtime kutusunu Başvurular – VBAProject iletişim kutusunda işaretleyin. Ekran görüntüsüne bakın:

VBA kodu: Yazarken metin kutusunu otomatik tamamlama

Dim xRg As Range
Dim xDic As New Dictionary
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Me.TextBox1.Value = Me.ListBox1.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xVal As String
    On Error Resume Next
    If IsNumeric(Target.Value) Then
        xVal = Str(Target.Value)
    Else
        xVal = Target.Value
    End If
    If xVal <> "" Then
        If Not xDic.Exists(xVal) Then
            xDic.Add xVal, xVal
        End If
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.ListBox1.Visible = False
End Sub
Private Sub Worksheet_Activate()
    Dim I As Long
    Dim xStr As String
    On Error Resume Next
    If xRg Is Nothing Then
        Set xRg = ActiveSheet.UsedRange
    End If
    Me.ListBox1.Visible = False
    xDic.RemoveAll
    With Me.ListBox1
        For I = 1 To xRg.Count
            xStr = xRg(I).Value
            If xStr <> "" Then
                .AddItem xStr
                If Not xDic.Exists(xStr) Then
                    xDic.Add xStr, xStr
                End If
            End If
        Next
    End With
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    With Me.ListBox1
        .Top = Me.TextBox1.Top
        .Left = Me.TextBox1.Left + Me.TextBox1.Width
        .Width = Me.TextBox1.Width
    End With
    TextBoxVal Me.TextBox1.Object
End Sub
Sub TextBoxVal(xTextBox As Variant)
    Dim I As Long
    Dim xStr As String
    On Error Resume Next
    Application.ScreenUpdating = False
    If xRg Is Nothing Then Exit Sub
    Me.ListBox1.Clear
    xStr = xTextBox.Value
    If xStr = "" Then
        Me.ListBox1.Visible = False
        Application.EnableEvents = True
        Exit Sub
    End If
    For I = 0 To UBound(xDic.Items)
        If Left(xDic.Items(I), Len(xStr)) = xStr Then
            Me.ListBox1.AddItem xDic.Items(I)
        End If
    Next
    Me.ListBox1.Visible = True
    If Me.ListBox1.ListCount > 0 Then
        With xTextBox
            .Value = Me.ListBox1.List(0)
            .SelStart = Len(xStr)
            .SelLength = Len(Me.ListBox1.List(0))
        End With
    End If
    Me.ListBox1.Activate
    Me.ListBox1.Selected(0) = True
    Application.ScreenUpdating = True
End Sub
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        Me.TextBox1.Value = Me.ListBox1.Value
    End If
End Sub

Başvurular iletişim kutusuna gidin ve Microsoft Scripting Runtime'ı işaretleyin

Not: Kodda ListBox1 ve Textbox1, çalışma sayfanıza eklediğiniz liste kutusu ve metin kutusunun adlarıdır.

5. Alt+Q tuşlarına basarak Microsoft Visual Basic for Applications penceresinden çıkın.

6. Çalışma sayfasında Geliştirici > Tasarım Modu seçeneğine tıklayarak Tasarım Modunu kapatın.

7. Artık başka bir çalışma sayfasına geçip ardından tekrar önceki çalışma sayfasına dönerek VBA kodunu etkinleştirin.

Artık metin kutusuna bir başlangıç harfi girdiğinizde, çalışma sayfasında bu harfle başlayan tüm metinler, metin kutusunun sağ tarafında yer alan liste kutusunda otomatik olarak listelenir. İhtiyacınız olan metni metin kutusuna eklemek için listede ilgili öğeye çift tıklayın. Ekran görüntüsüne göz atın:

Metin kutusuna bir başlangıç harfi girildiğinde, o harfle başlayan tüm metinler listelenir

Not: Liste kutusundaki tüm otomatik tamamlama metinleri arasında gezinmek için Yukarı veya Aşağı ok tuşlarını kullanabilir, ardından ihtiyacınız olan metni metin kutusuna eklemek için Enter tuşuna basabilirsiniz.



İlgili makaleler:

En İyi Office Üretkenlik Araçları

🤖KUTOOLS AI Yardımcısı: Şunu temel alarak Veri Analizi’i devrimleştirin:Akıllı Yürütme   |  Kod Oluştur|  özel formüller Oluştur  |  Verileri Analiz Et ve Grafikler Oluştur|  Geliştirilmiş İşlevler Çağır…
Popüler Özellikler:Bul, Vurgula veya Yinelenenleri İşaretle   |  Boş Satırları Sil   |  Veri Kaybetmeden Sütunları Birleştir veya Hücreleri   |   Formül kullanmadan yuvarlama…
Süper ARA:Çoklu Kriterli Dikey Arama (VLookup)  |  Çoklu Değerli Dikey Arama (VLookup)  |   Birden Fazla Sayfada Dikey Arama (VLookup)   |   Bulanık Eşleme…
Gelişmiş Açılır Liste:Açılır Liste Hızlıca Oluştur   |  Bağımlı Açılır Liste   |  Çoklu Seçimli Açılır Liste…
Sütun Yöneticisi:Belirli Sayıda Sütun Ekle|Sütunları Taşı|Gizli Sütunların Görünürlük Durumunu Aç/Kapat|Aralıkları ve Sütunları Karşılaştır…
Öne Çıkan Özellikler:Izgara Odaklama   |  Tasarım Görünümü   |Gelişmiş formül çubuğu   | Çalışma Kitabı ve Sayfa Yöneticisi   |  Kaynaklar(Otomatik Metin)|  Tarih Seçici   |  Çalışma Sayfalarını Birleştir  |  Şifrele/Hücreleri Şifre Çöz   | Listeye Göre E-posta Gönder   |  Süper Filtre   |   Özel Filtre(Kalın Yazılı Hücreleri Filtrele/italik/üstü çizili…) …
En Çok Kullanılan 15 Araç Setleri:12 MetinAraçları(Metin Ekle,Belirli Karakterleri Sil, …)|   50+GrafikTürleri(Gantt Grafiği, …)|   40+ Pratik Formüller(Doğum tarihine dayanarak yaş hesapla, …)|   19 EklemeAraçları(QR Kodu Ekle,Yoldan Resim Ekle, …)|   12 DönüştürmeAraçları(Kelimeye Dönüştür,Döviz Kuru Dönüşümü, …)|   7 Birleştir ve AyırAraçları(Gelişmiş Satırları Birleştir,Hücreleri Böl, …)|… ve daha fazlası
Kutools'u tercih ettiğiniz dilde kullanın – İngilizce, İspanyolca, Almanca, Fransızca, Çince ve 40+ başka dillerde de desteklenir!

Excel becerilerinizi Kutools for Excel ile geliştirin ve verimlilikte hiç yaşamadığınız bir deneyim yaşayın.Kutools for Excel, üretkenliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…


Office Tab, Office uygulamalarına sekmeli bir arayüz kazandırarak işlerinizi çok daha kolay hale getirir.

  • Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
  • Belgeleri yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açıp oluşturun.
  • Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!

Tüm Kutools eklentileri — tek bir kurulum dosyasında!

Kutools for Office paketi, Excel, Word, Outlook ve PowerPoint eklentilerini ve ayrıca Office Tab Pro’yu içeren kapsamlı bir çözümdür; Office uygulamalarında çalışan ekipler için idealdir.

ExcelWordOutlookTabsPowerPoint
  • Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
  • Tek kurulum, tek lisans— birkaç dakikada hazır (MSI uyumlu)
  • Birlikte daha iyi çalışır— Office uygulamalarında akıcı üretkenlik
  • 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
  • En iyi fiyat performans— ayrı ayrı eklenti satın almaya göre tasarruf sağlar