Combobox a yazılana göre uyanları listeleme

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,672
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 👍
 

yanginci34

Altın Üye
Katılım
6 Temmuz 2010
Mesajlar
1,672
Excel Vers. ve Dili
excel2016
Altın Üyelik Bitiş Tarihi
12-10-2026
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 👍
dönüş yaptığınız için çok teşekkür ederim ancak baka bildim bu aralar eşimin rahatsızlığından dolayı girip bakamadım dosyayı paylaşıyorum akarsanız sevinirim birden fazla sıkıntı var baş harfi yazdınmı o harf içeren tüm liste açılıyor ve birdaha işlem yapmıyor birde listeden isim seçince combobox kompile siliniyor haliyle isim seçememiş oluyorum dosyamı payla
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,498
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
dönüş yaptığınız için çok teşekkür ederim ancak baka bildim bu aralar eşimin rahatsızlığından dolayı girip bakamadım dosyayı paylaşıyorum akarsanız sevinirim birden fazla sıkıntı var baş harfi yazdınmı o harf içeren tüm liste açılıyor ve birdaha işlem yapmıyor birde listeden isim seçince combobox kompile siliniyor haliyle isim seçememiş oluyorum dosyamı payla
Geçmiş olsun... Acil şifalar dilerim..
 
Üst