Aranan deger birden fazla ise

Katılım
28 Şubat 2007
Mesajlar
251
Excel Vers. ve Dili
visual basic
Arkadaslar selam,

Bir databasim var ve bunu hazirlamis oldugum bir form ile olusturup tekrar oraya cagirip degisiklikler yapabiliyorum.

Form uzerinde bir de listbox var ki sadece A kolonundaki müsteri numarini getiriyorum ve bunu listboximdaki uzerindeki bir textbox ile arama yapmayi kolaylastirdim.

Mesela 100 numarali musteri icin textboxa 100 yazinca listboxda sadece onu süzüyor ve ona tiklayinca da textbox ve comboboxlara ona ait bilgilerimi çağıyorum.

Buraya kadar herşey güzel. Ancak sorun surada arkadaşlar; Eger Ayni müşteri numarasindan 1den fazla varsa o zaman listboxdan hangisini seçersem seçeyim en son olani getiriyor ve bu da büyük bir sorun.

Yapmak istediğim ise müşteri numarasini listboxa çağırdığımda eğer giriş 1den fazla ise bana 3. kolonda bulunan A,B,C tiplerine gore seçmemi sağlasin.

Mesela 100 numarali müşteriden 2 tane ise bunlarin 3. kolonunda birinde A birinde B veya birinde B birinde C veya birinde A birinde C olabilir. Tabi 3 tane olursa birinde A birinde B digerinde de C olacaktir mutlaka.

Bunu yapmamiz mumkun mu arkadaşlar?

Ben hatali kodu yaziyorum Aşağıda yardimci olan olursa çok sevinirim.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Sayfa1.Range("A:A").Find(ListBox1.Text).Select
Call VeriAl
End Sub

Şimdiden Cok teşekkurler.
 

Korhan Ayhan

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

Örnek dosya eklermisiniz.
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
yanıt

Örneği inceleyiniz.
Kod:
Private Sub TextBox1_Change()
ListBox1.Clear
ListBox1.ColumnCount = 2
For suta = 1 To [a65536].End(3).Row
If Range("a" & suta) Like TextBox1 & "*" Then
ListBox1.AddItem
ListBox1.List(s, 0) = Range("a" & suta)
ListBox1.List(s, 1) = Range("b" & suta)
s = s + 1
End If
Next
End Sub
Private Sub UserForm_Initialize()
TextBox1 = "1"
TextBox1 = ""
End Sub
 

Korhan Ayhan

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

Örnek dosyanızı inceledim. Size tavsiyem veri tabanı oluşturuken eğer mükerrer kayıtlarla çalışacaksanız bu kayıtları işlerken (SIRA NO, ID NO) gibi farklı olan bir alan kullanmanız. Bu şekilde kayıtları yönetmek daha kolay olacaktır. Bu haliyle örnek dosyanızdaki kayıtları düzenlemek için iki kriterli bir döngü ile bütün kayıtlar kontrol edilerek istediğiniz kaydı bulup düzeltebilme şansımız var. Ama bu şekilde veri tabanınızda binlerce kayıtla çalışacağınızı düşünürsek döngü ile bu işlemi yapmak çok akıllıca olmayacaktır. İşte bu durumda işin içine kayıt işlerken kullanacağınız farklı alan girecektir. Bu alana verdiğiniz numarayı bul komutu ile tesbit edip istediğiniz kaydı form üzerine kolaylıkla çağırabilirsiniz.

Umarım açıklayıcı olmuştur.
 
Katılım
28 Şubat 2007
Mesajlar
251
Excel Vers. ve Dili
visual basic
Selamlar,

Örnek dosyanızı inceledim. Size tavsiyem veri tabanı oluşturuken eğer mükerrer kayıtlarla çalışacaksanız bu kayıtları işlerken (SIRA NO, ID NO) gibi farklı olan bir alan kullanmanız. Bu şekilde kayıtları yönetmek daha kolay olacaktır. Bu haliyle örnek dosyanızdaki kayıtları düzenlemek için iki kriterli bir döngü ile bütün kayıtlar kontrol edilerek istediğiniz kaydı bulup düzeltebilme şansımız var. Ama bu şekilde veri tabanınızda binlerce kayıtla çalışacağınızı düşünürsek döngü ile bu işlemi yapmak çok akıllıca olmayacaktır. İşte bu durumda işin içine kayıt işlerken kullanacağınız farklı alan girecektir. Bu alana verdiğiniz numarayı bul komutu ile tesbit edip istediğiniz kaydı form üzerine kolaylıkla çağırabilirsiniz.

Umarım açıklayıcı olmuştur.
Cost center aslinda biliyorum bu dedigini her bir type icin aslinda kriterim Müsteri Nosu onu sadece 1 kisiye veriyorsun ve Bu ID yerine gecebiliyor bu numara 3 haneli de degil 7 haneli ancak bunlarin hepsini bir veritabaninda tutup kolaylıkla aratmak istediğimiz icin boyle oldu eğer ID verirsek bu sefer de iki aşamadan geçmiş olacak. Bu son kullanicilar icin ikinci bir kod demek ki pek kullanışlı olmaz o zaman.

Döngü ile nasil yapıldığını gonderebilir misin ben de bunun üzerinden belki farkli bir yorum getirebilirim.

Teşekkürler
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Ekteki örneği inceleyiniz.

Burada Sn.COST_CONTROL çok yerinde bir uyarıda bulunmuş. Herbir kayıt benzersiz bir numaralandırma ile (ID) birbirinden ayrılmalıdır.

Ancak tabi sizin projeniz muhtemelen hazır olduğu veya projenizde uzunca bir yol alındığı için, minareyi kılıfına uydurmak gerekiyor. Ekteki dosyada; sadece bu kılıfı göreceksiniz.
 
Katılım
28 Şubat 2007
Mesajlar
251
Excel Vers. ve Dili
visual basic
Peki Arkadaşlar şuan aklima gelen birşeyi sizinle paylaşmak istiyorum eğer yapılacak bir şey olursa sonrasinda sizlerinde yardimiyla uğraşmak istiyorum.

Benim type kisminda 3 farklı değişkenim olacağı için en fazla bir Müşteri numarasından 3 tane olacak yani 100 için 3 tane. Ama bunu ID olarak belirlemek icin diyorum ki 100-A desem yani 100-A 100-B 100-C olarak değişecek.
Bu durumda baştaki sayılar hep değişik olacaği icin her bir değerden 1 tane olmuş olacak. Boyle birşey sorunumuzu çözer mi?

Ve bir diğer sorum ise girişte bunlari cells(x,1).text=textbox1.text&"-"&combobox1.text olarak atasak ve listboxda arattiğimizda cikan değere çift tıkladiğimizda buradaki değerin tekrar textbox1 den geleni textbox1e, combobox1den geleni combobox1e tekrar ayirabilir miyiz?

Ekte sadece yeni kayıt icin nasıl olması gerektiğini gosterdim ama bakıp olup olmayacağını soylerseniz sevinirim.

Teşekkurler
 
Katılım
28 Şubat 2007
Mesajlar
251
Excel Vers. ve Dili
visual basic
Ekteki örneği inceleyiniz.

Burada Sn.COST_CONTROL çok yerinde bir uyarıda bulunmuş. Herbir kayıt benzersiz bir numaralandırma ile (ID) birbirinden ayrılmalıdır.

Ancak tabi sizin projeniz muhtemelen hazır olduğu veya projenizde uzunca bir yol alındığı için, minareyi kılıfına uydurmak gerekiyor. Ekteki dosyada; sadece bu kılıfı göreceksiniz.
Fpc hocam sağolasin bu arada ilgilendigin icin ancak bu projede dediğin gibi çok yol kat etmenin ve bazi değişilmezlerden dolayi olayi bir yukarida acikladiğim gibi ancak cözmem gerekiyor:(

Bir yukaridaki dosyali ornegi inceleyebilir misin?

Teşekkürler.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Listbox1'in Dbl_Click olayını silin ve aşağıdakini kopyalayın.

Ana mantık, listede tıklanan değerin varolan değerler arasında kaçıncı değer olduğunu bulmasına dayanmaktadır.
Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If ListBox1.ListCount = 0 Then: Exit Sub
   Set sh = Sheets("Sayfa1")
   Adı = ListBox1.Text
   secilen = ListBox1.ListIndex
   For i = 0 To ListBox1.ListCount - 1
       If ListBox1.List(i, 0) & "" = Adı Then: s = s + 1
       If i = secilen Then: GoTo f1
   Next i
f1:
   Set bul = Sheets("Sayfa1").Range("A:A").Cells.Find(Adı)
       If Not bul Is Nothing Then
          adres = bul.Address
          Do
             y = y + 1
             If y = s Then
                satir = bul.Row
                TextBox1.Text = sh.Cells(bul.Row, 1)
                TextBox2.Text = sh.Cells(bul.Row, 2)
                ComboBox1.Text = sh.Cells(bul.Row, 3)
                TextBox4.Text = sh.Cells(bul.Row, 4)
                TextBox5.Text = Format(sh.Cells(bul.Row, 5), "hh:mm")
                Set bul = Nothing
                Exit Sub
             End If
             Set bul = Sheets("Sayfa1").Range("A:A").Cells.FindNext(bul)
             Loop While Not bul Is Nothing And bul.Address <> adres
       End If
End Sub
 
Katılım
28 Şubat 2007
Mesajlar
251
Excel Vers. ve Dili
visual basic
Arkadaslar artik ne yaptimsa olmuyor!
Bu sefer Cost_Control ve fpc arkadaslarmizin tavsiyelerine uyarak bir ID no ile yapmaya çalıştım.

Ancak bu sefer de Type tipi hiçbir değişiklik yapmamama rağmen bazılarında boş geldiği gibi, Düzelt butonuna bazinca ve kaydet dediğimde bazilarinda farklı yerlere kaydediyor.

Sorunun ne olduğunu anlayabilmiş değilim.

Sanki ID nosu 7 olani düzeltmek istediğimde bunu 2007 içerisindeki 7 yi göz önüne mi aliıyor bilmiyorum farklı yere kayıt ediyor. (Yani tamamen Düşünmeye çalışıyorum öyle demiyorum)

Ekte Dosyayı yolluyorum Uzman olan arkadaşlar bakabilir mi acaba?

Yardımınıza ihtiyacım var arkadaşlar.

Teşekkurler.
 
Katılım
28 Şubat 2007
Mesajlar
251
Excel Vers. ve Dili
visual basic
Yok mu arkada&#351;lar ilgilenen bi uzman arkada&#351;?
 
Üst