Combobox'tan sadece seçilen verilerin getirilmesi.

Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Merhabalar;

Userformun üzerindeki Combobox ile, seçtiğim kişiye ait bilgiler, BUL butonundaki aşağıda kodla, Textboxlara gelmektedir.


Private Sub bul_Click()
On Error Resume Next
Sheets("veri1").Select
Dim bak As Range
For Each bak In Range("A1:A" & WorksheetFunction.CountA(Range("A1:A65000")))
If StrConv(bak.Value, vbUpperCase) = StrConv(ComboBox1.Value, vbUpperCase) Then
bak.Select


TextBox2.Value = ActiveCell.Offset(0, 0).Value
TextBox3.Value = ActiveCell.Offset(0, 1).Value
TextBox4.Value = ActiveCell.Offset(0, 2).Value
TextBox5.Value = ActiveCell.Offset(0, 3).Value
TextBox6.Value = ActiveCell.Offset(0, 4).Value
TextBox7.Value = ActiveCell.Offset(0, 5).Value
TextBox8.Value = ActiveCell.Offset(0, 6).Value


Exit Sub
End If
Next bak
End Sub

SORUNUM:

Listede aynı isimli kişiye ait BİRDEN FAZLA VERİ-SATIR varsa, hangisi seçilirse seçilsin, seçilen değil, listedeki ilk veri textboxlara geliyor.

Listede aynı kişiye ait birden fazla veri bile olsa, sadece Combobokx.tan seçilen kişiye ait bilgilerin getirilmesi için kodda, hehangibir değişiklik yapılabilir mi?

Combobox.un Kodu;

Private Sub ComboBox1_Change()
On Error Resume Next
Dim x As Integer
x = Sheets("veri1").Range("A:A").Cells.Find(what:=ComboBox1, LookIn:=X1Values).Row
End Sub


Şimdiden Teşekkürlerimle.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Anladığım kadarıyla aynı isimden birden fazla mevcut ve siz comboboxtan isim seçip bul diyorsunuz ve veriler textboxlara geliyor. Bunun yerine Bul butonunu iptal edip sadece combobox ile bu işlemi aşağıdaki kod yardımı ile halledebilirsiniz.

Not: Verilerinizin 2. satırdan başladığı düşünülmüştür.

Kod:
Private Sub ComboBox1_Change()
    TextBox2 = Cells(ComboBox1.ListIndex + 2, 1)
    TextBox3 = Cells(ComboBox1.ListIndex + 2, 2)
    TextBox4 = Cells(ComboBox1.ListIndex + 2, 3)
    TextBox5 = Cells(ComboBox1.ListIndex + 2, 4)
    TextBox6 = Cells(ComboBox1.ListIndex + 2, 5)
    TextBox7 = Cells(ComboBox1.ListIndex + 2, 6)
    TextBox8 = Cells(ComboBox1.ListIndex + 2, 7)
End Sub
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
415
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
Selamlar,

Anladığım kadarıyla aynı isimden birden fazla mevcut ve siz comboboxtan isim seçip bul diyorsunuz ve veriler textboxlara geliyor. Bunun yerine Bul butonunu iptal edip sadece combobox ile bu işlemi aşağıdaki kod yardımı ile halledebilirsiniz.

Not: Verilerinizin 2. satırdan başladığı düşünülmüştür.

Kod:
Private Sub ComboBox1_Change()
    TextBox2 = Cells(ComboBox1.ListIndex + 2, 1)
    TextBox3 = Cells(ComboBox1.ListIndex + 2, 2)
    TextBox4 = Cells(ComboBox1.ListIndex + 2, 3)
    TextBox5 = Cells(ComboBox1.ListIndex + 2, 4)
    TextBox6 = Cells(ComboBox1.ListIndex + 2, 5)
    TextBox7 = Cells(ComboBox1.ListIndex + 2, 6)
    TextBox8 = Cells(ComboBox1.ListIndex + 2, 7)
End Sub
usta uzun süredir kafamı kurcalayan sorunumu sayende hallettim. Daha önceki formumda bularak işlem yapıyordum. fakat bu yöntem ile aynı isimlere sahip farklı personel ile ilgili işlem yapılabilir. fakat değişiklik yapmam gerektiğinde nasıl bir işlem yapacağımı saptamış değilim. bulduğum kişiye ait bilgileri düzeltecek kodda yardımcı olursanız sevinirm. saygılarımla...
 
Katılım
7 Temmuz 2004
Mesajlar
327
Excel Vers. ve Dili
office xp pro türkçe
Sayın Sbayyigit
Aynı userforma bir adet değiştir butonu ekleyiniz.
Eklediğiniz butona aşağıdaki kodlamaları ilave ediniz.

Kod:
Private Sub CommandButton1_Click() 'değiştir
  Cells(ComboBox1.ListIndex + 2, 2) = TextBox1
  Cells(ComboBox1.ListIndex + 2, 3) = TextBox2
  Cells(ComboBox1.ListIndex + 2, 4) = TextBox3
End Sub
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
415
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
Sayın Sbayyigit
Aynı userforma bir adet değiştir butonu ekleyiniz.
Eklediğiniz butona aşağıdaki kodlamaları ilave ediniz.

Kod:
Private Sub CommandButton1_Click() 'değiştir
  Cells(ComboBox1.ListIndex + 2, 2) = TextBox1
  Cells(ComboBox1.ListIndex + 2, 3) = TextBox2
  Cells(ComboBox1.ListIndex + 2, 4) = TextBox3
End Sub
saol usta. oldu. teşekkür ederim....
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Konuyla ilgili basit bir örnek dosya ekliyorum. Kodları incelerseniz mantığını rahatça kavrayabilirsiniz.
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
415
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
sayın usta verdiğin örneği kendi excel dosyama uyarladım fakat takıldığım bir nokta var, belki basittir fakat ben bir türlü çözemedim. beceremedim.
örneği biraz değiştirdim veriler combobox a göre değil de listboxa göre değerlendirmek istiyorum. listbox un birindi sütununa göre yapmaya çalıştım fakat sıralamada sürekli hata oluyor. yardımınız için teşekkürler....
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Tam olarak ne yapmak istediğinizi açıklarsanız yardımcı olmaya çalışırız. Açıkçası ben ne yapmak istediğinizi anlamadım.
 
Katılım
7 Temmuz 2004
Mesajlar
327
Excel Vers. ve Dili
office xp pro türkçe
sayın usta verdiğin örneği kendi excel dosyama uyarladım fakat takıldığım bir nokta var, belki basittir fakat ben bir türlü çözemedim. beceremedim.
örneği biraz değiştirdim veriler combobox a göre değil de listboxa göre değerlendirmek istiyorum. listbox un birindi sütununa göre yapmaya çalıştım fakat sıralamada sürekli hata oluyor. yardımınız için teşekkürler....
Aşağıdaki kodlamalar sanırım isteğinizi karşılar benim anladığıma göre listboxta ilgili kayıda çift tıkladığınızda kayıtların text lere ve comboya gelmesini istiyorsunuz sanırım eğer öyleyse buyrun

Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Integer
i = ListBox1.ListIndex
ComboBox1.Value = Cells(i + 2, 1)
TextBox1.Value = Cells(i + 2, 2)
TextBox2.Value = Cells(i + 2, 3)
TextBox3.Value = Cells(i + 2, 4)

End Sub
Değiştir buton kodlarıda aşağıdaki gibi olacak
Kod:
Private Sub CommandButton1_Click()
    Dim i As Integer
    i = ListBox1.ListIndex + 2
    
    
    Onay = MsgBox("Değişiklikleri onaylıyor musunuz ?", vbExclamation + vbYesNo, "Dikkat !")
    If Onay = vbNo Then
    MsgBox "İşleminiz iptal edilmiştir.", vbInformation
    Formu_Temizle
    Else
    
    ComboBox1.RowSource = ""
    Cells(i, 1) = ComboBox1.Value
    Cells(i, 2) = TextBox1
    Cells(i, 3) = TextBox2
    Cells(i, 4) = TextBox3.Value
    [A1].Select
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
    ListBox1.Clear
    UserForm_Initialize
    combobox1_Change
    
    End If
End Sub
 
Son düzenleme:

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
415
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
sayın ustalar öncelikler ilginiz için teşekkür ederim. ben de (TextBox1.Value = Cells(ListBox1.ListIndex + 2, 2) şeklinde yapmıştım sanırım aynı işi görür fakat değiştir dediğim zaman sürekli olarak 1. satıra işleniyor. bunu aşamadım.saygılarımla...
 
Katılım
7 Temmuz 2004
Mesajlar
327
Excel Vers. ve Dili
office xp pro türkçe
Değiştir buton kodlarıda aşağıdaki gibi olacak
Kod:
Private Sub CommandButton1_Click()
    Dim i As Integer
    i = ListBox1.ListIndex + 2
    
    
    Onay = MsgBox("Değişiklikleri onaylıyor musunuz ?", vbExclamation + vbYesNo, "Dikkat !")
    If Onay = vbNo Then
    MsgBox "İşleminiz iptal edilmiştir.", vbInformation
    Formu_Temizle
    Else
    
    ComboBox1.RowSource = ""
    Cells(i, 1) = ComboBox1.Value
    Cells(i, 2) = TextBox1
    Cells(i, 3) = TextBox2
    Cells(i, 4) = TextBox3.Value
    [A1].Select
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
    ListBox1.Clear
    UserForm_Initialize
    combobox1_Change
    
    End If
End Sub
Sizin için Değiştir kodlarını da yazmıştım ama dikkat etmemişsiniz sanırım.
Saygılar Sevgiler
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
415
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
Sizin için Değiştir kodlarını da yazmıştım ama dikkat etmemişsiniz sanırım.
Saygılar Sevgiler
usta farketmez olurmuyum. farkettim tabiki. ama bir türlü istediğim sonucu alamadım. sürekli olarak ilk kaydı alıyo. yani listeden seçtiğim isim üzerinden değerlendirme yapmıyor. ilk kayıt olarak işlem yapıyor. bilmiyorum nedenini belki ben yanılıyor olabilirim. ama istediğim sonucu alamadım. saygılarımla ...
 
Katılım
7 Temmuz 2004
Mesajlar
327
Excel Vers. ve Dili
office xp pro türkçe
dosyanızı tekrar bi kontrol edin sanırım bu sefer düzeldi
Saygılar sevgiler.
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
415
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
tam olmuş değil. istenilen kayıt üzerinden hala işlem olmuyor. teşekkür eder saygılar sunarım...
 
Son düzenleme:

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
415
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
Selamlar,

Tam olarak ne yapmak istediğinizi açıklarsanız yardımcı olmaya çalışırız. Açıkçası ben ne yapmak istediğinizi anlamadım.
usta; sizin yapmış olduğunuz kodlar combobox üzerinden işlem yapıyordu. benim istediğim şey ise, combobox ile seçim yapılınca Örneğin a harfi ile başlayanlar listbox içerisine yerleştirildikten sonra listbox içerisinde oluşacak 1 den fazla ali var ise listboxda isimin yanında ikinci kriter de görüntülenmekte. işte bundan faydalanarak 25 yaşındaki aliyi seçince textboxlara seçili satırdaki ali gelmiş olacak (tıpkı sizin combobox ile yapmış olduğunuz gibi) daha sonra gerekli değişiklik varsa textboxlar yardımı ile değişiklik yapılıp değiştir dediğimizde ilgili satır üzerinden excel sayfasına kaydedecek. saygılarımla....
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Konuyla ilgili örnek dosya üzerinde gerekli değişiklikleri yaptım incelermisiniz. Umarım istediğiniz gibi olmuştur.
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
415
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
Usta teşekkür eder saygılar sunarım. kodlar üzerinde değişiklik yaptım işimi gördü. sağolun...
 
Üst