Combobox a yazılana göre uyanları listeleme

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,669
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
Arkadaşlar merhaba ; bir userform var bu formda 1 combobox ve be birde buton var Sayfa1 de a sütununda isimler b sütununda da siciller var yapmak istediğim şu formu açtığımda combobox a her harf yazdığımda o harflere uyan isimleri listelesin istiyorum ama aynı isimde olduğunda tek geliyor ben hepsinin gelmesini istiyorum ve butona basıldığında da Sayfa2 de isim c sütununun son dolu satırına sicil b sütununa yazılmasını istiyorum. Teşekkürler
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,760
Excel Vers. ve Dili
Excel 2019 Türkçe
Chatgpt ye yazdırdım, kontrol eder misiniz ?

Merhaba 🙂
İstediğin işlemler için ComboBox’ı 2 sütunlu kullanmak en sağlıklısı. Böylece aynı isimler tekrar etse bile her birinin farklı sicilini tutabiliriz.

Aşağıdaki çözüm tam olarak şunları yapar:

  • Form açılınca ComboBox hazır olur
  • ComboBox’a harf yazdıkça Sayfa1’deki A:B aralığından eşleşen TÜM isimleri listeler
  • Aynı isimler tekilleştirilmez, hepsi gelir
  • Butona basılınca seçilen kişinin
    • İsmi → Sayfa2 C sütununun sonuna
    • Sicili → Sayfa2 B sütununa yazar

1️⃣ UserForm Ayarları

ComboBox özellikleri:

  • ColumnCount = 2
  • ColumnWidths = "120 pt;0 pt" (sicil gizli olur)
  • MatchEntry = fmMatchEntryNone

2️⃣ UserForm Code (Filtreleme)


Private Sub ComboBox1_Change()

Dim ws As Worksheet
Dim i As Long
Dim sonSatir As Long
Dim aranan As String

Set ws = ThisWorkbook.Sheets("Sayfa1")
sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
aranan = LCase(ComboBox1.Text)

ComboBox1.Clear

For i = 2 To sonSatir
If InStr(LCase(ws.Cells(i, "A").Value), aranan) > 0 Then
ComboBox1.AddItem ws.Cells(i, "A").Value
ComboBox1.List(ComboBox1.ListCount - 1, 1) = ws.Cells(i, "B").Value
End If
Next i

ComboBox1.DropDown

End Sub



3️⃣ Buton Kodu (Sayfa2’ye Yazma)


Private Sub CommandButton1_Click()

Dim ws As Worksheet
Dim yeniSatir As Long

If ComboBox1.ListIndex = -1 Then
MsgBox "Lütfen listeden bir seçim yapın.", vbExclamation
Exit Sub
End If

Set ws = ThisWorkbook.Sheets("Sayfa2")
yeniSatir = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row + 1

ws.Cells(yeniSatir, "C").Value = ComboBox1.List(ComboBox1.ListIndex, 0) 'İsim
ws.Cells(yeniSatir, "B").Value = ComboBox1.List(ComboBox1.ListIndex, 1) 'Sicil

MsgBox "Kayıt eklendi.", vbInformation

End Sub


✅ Özet

✔ Aynı isimler ayrı ayrı listelenir
✔ Sicil bilgisi gizli tutulur ama taşınır
✔ Dinamik arama yapılır
✔ Sayfa2’ye otomatik son satıra eklenir

İstersen:

  • ComboBox yerine ListBox
  • Çift tıklama ile ekleme
  • Aynı sicil tekrar eklenmesin kontrolü

gibi geliştirmeler de yapabiliriz 👍
 
Üst