• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Combobox ta verileri bulma,

  • Konbuyu başlatan Konbuyu başlatan angurya
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Kasım 2008
Mesajlar
28
Excel Vers. ve Dili
Excel 2007
Private Sub cbAd_Click()
Dim bak As Range
For Each bak In Range("B1:B" & WorksheetFunction.CountA(Range("B1:B65000")))
If StrConv(bak.Value, vbUpperCase) = StrConv(cbAd.Value, vbUpperCase) Then
bak.Select
txtsira_no = ActiveCell.Offset(0, -1).Value
cbAd = ActiveCell
txtSicilNo = ActiveCell.Offset(0, 1).Value
txtKimlikNo = ActiveCell.Offset(0, 2).Value
txtIbanNo = ActiveCell.Offset(0, 3).Value
txtGsmNo = ActiveCell.Offset(0, 4).Value
txtToplam.Value = ActiveCell.Offset(0, 5).Value
TextBox1.Value = ActiveCell.Offset(0, 6).Value
TextBox2.Value = ActiveCell.Offset(0, 7).Value
TextBox3.Value = ActiveCell.Offset(0, 8).Value
TextBox4.Value = ActiveCell.Offset(0, 9).Value
TextBox5.Value = ActiveCell.Offset(0, 10).Value
TextBox6.Value = ActiveCell.Offset(0, 11).Value
TextBox7.Value = ActiveCell.Offset(0, 12).Value
TextBox8.Value = ActiveCell.Offset(0, 13).Value
TextBox9.Value = ActiveCell.Offset(0, 14).Value
TextBox10.Value = ActiveCell.Offset(0, 15).Value
TextBox11.Value = ActiveCell.Offset(0, 16).Value
TextBox12.Value = ActiveCell.Offset(0, 17).Value
TextBox13.Value = ActiveCell.Offset(0, 18).Value
TextBox14.Value = ActiveCell.Offset(0, 19).Value
TextBox15.Value = ActiveCell.Offset(0, 20).Value
TextBox16.Value = ActiveCell.Offset(0, 21).Value
TextBox17.Value = ActiveCell.Offset(0, 22).Value
TextBox18.Value = ActiveCell.Offset(0, 23).Value
TextBox19.Value = ActiveCell.Offset(0, 24).Value
TextBox20.Value = ActiveCell.Offset(0, 25).Value
TextBox21.Value = ActiveCell.Offset(0, 26).Value
TextBox22.Value = ActiveCell.Offset(0, 27).Value
TextBox23.Value = ActiveCell.Offset(0, 28).Value
TextBox24.Value = ActiveCell.Offset(0, 29).Value
TextBox25.Value = ActiveCell.Offset(0, 30).Value
TextBox26.Value = ActiveCell.Offset(0, 31).Value
TextBox27.Value = ActiveCell.Offset(0, 32).Value
TextBox28.Value = ActiveCell.Offset(0, 33).Value
TextBox29.Value = ActiveCell.Offset(0, 34).Value
TextBox30.Value = ActiveCell.Offset(0, 35).Value
TextBox31.Value = ActiveCell.Offset(0, 36).Value
TextBox32.Value = ActiveCell.Offset(0, 37).Value
TextBox33.Value = ActiveCell.Offset(0, 38).Value
TextBox34.Value = ActiveCell.Offset(0, 39).Value
TextBox35.Value = ActiveCell.Offset(0, 40).Value
TextBox36.Value = ActiveCell.Offset(0, 41).Value
TextBox37.Value = ActiveCell.Offset(0, 42).Value
TextBox38.Value = ActiveCell.Offset(0, 43).Value
TextBox39.Value = ActiveCell.Offset(0, 44).Value
TextBox40.Value = ActiveCell.Offset(0, 45).Value
TextBox41.Value = ActiveCell.Offset(0, 46).Value
TextBox42.Value = ActiveCell.Offset(0, 47).Value
TextBox43.Value = ActiveCell.Offset(0, 48).Value
TextBox44.Value = ActiveCell.Offset(0, 49).Value
TextBox45.Value = ActiveCell.Offset(0, 50).Value
TextBox46.Value = ActiveCell.Offset(0, 51).Value
TextBox47.Value = ActiveCell.Offset(0, 52).Value
TextBox48.Value = ActiveCell.Offset(0, 53).Value
TextBox49.Value = ActiveCell.Offset(0, 54).Value
TextBox50.Value = ActiveCell.Offset(0, 55).Value
TextBox51.Value = ActiveCell.Offset(0, 56).Value
TextBox52.Value = ActiveCell.Offset(0, 57).Value
TextBox53.Value = ActiveCell.Offset(0, 58).Value
TextBox54.Value = ActiveCell.Offset(0, 59).Value
TextBox55.Value = ActiveCell.Offset(0, 60).Value
TextBox56.Value = ActiveCell.Offset(0, 61).Value
TextBox57.Value = ActiveCell.Offset(0, 62).Value
TextBox58.Value = ActiveCell.Offset(0, 63).Value
TextBox59.Value = ActiveCell.Offset(0, 64).Value
TextBox60.Value = ActiveCell.Offset(0, 65).Value
TextBox61.Value = ActiveCell.Offset(0, 66).Value
TextBox62.Value = ActiveCell.Offset(0, 67).Value
TextBox63.Value = ActiveCell.Offset(0, 68).Value
TextBox64.Value = ActiveCell.Offset(0, 69).Value
TextBox65.Value = ActiveCell.Offset(0, 70).Value
TextBox66.Value = ActiveCell.Offset(0, 71).Value
TextBox67.Value = ActiveCell.Offset(0, 72).Value
TextBox68.Value = ActiveCell.Offset(0, 73).Value
TextBox69.Value = ActiveCell.Offset(0, 74).Value
TextBox70.Value = ActiveCell.Offset(0, 75).Value
TextBox71.Value = ActiveCell.Offset(0, 76).Value
TextBox72.Value = ActiveCell.Offset(0, 77).Value
TextBox73.Value = ActiveCell.Offset(0, 78).Value
TextBox74.Value = ActiveCell.Offset(0, 79).Value
TextBox75.Value = ActiveCell.Offset(0, 80).Value
TextBox76.Value = ActiveCell.Offset(0, 81).Value
TextBox77.Value = ActiveCell.Offset(0, 82).Value
TextBox78.Value = ActiveCell.Offset(0, 83).Value
TextBox79.Value = ActiveCell.Offset(0, 84).Value
TextBox80.Value = ActiveCell.Offset(0, 85).Value
TextBox81.Value = ActiveCell.Offset(0, 86).Value
TextBox82.Value = ActiveCell.Offset(0, 87).Value
TextBox83.Value = ActiveCell.Offset(0, 88).Value
TextBox84.Value = ActiveCell.Offset(0, 89).Value
TextBox85.Value = ActiveCell.Offset(0, 90).Value
TextBox86.Value = ActiveCell.Offset(0, 91).Value
TextBox87.Value = ActiveCell.Offset(0, 92).Value
TextBox88.Value = ActiveCell.Offset(0, 93).Value

Exit Sub
End If
Next bak
MsgBox "Aradığınız sayıda bir kayıt bulunamadı"
End Sub

yukarıdaki kodla b sutununda bulunan verileri cbAd isimli comboboxa alıyorum ama örnek Ahmet isimli iki kayıt var ise Comboya Ahmet yazdığımda 1. kayıt geliyor buraya kadar herşey sorunsuz ama Ahmet Metin adlı diğer kayıt için komboda devam ettiğimde 2. kaydı ve buna bağlı bilgiler diğer txt alanlara gelmiyor sorun ne olabilir...
 

Ekli dosyalar

Merhaba..

Sorunuz hakkında bir öneri değil belki ama yukarıda verdiğiniz prosedür yapısını (örneğinizin içinde bir çok yerde kullandığınızı gördüğümden) kısaltmanızı sağlayacak bir yapı önereyim..:

Kod:
    Dim bak As Range
        For Each bak In Range("B1:B" & WorksheetFunction.CountA(Range("B1:B65000")))
        If StrConv(bak.Value, vbUpperCase) = StrConv(cbAd.Value, vbUpperCase) Then
            bak.Select
                txtsira_no = ActiveCell.Offset(0, -1).Value
                cbAd = ActiveCell
                txtSicilNo = ActiveCell.Offset(0, 1).Value
                txtKimlikNo = ActiveCell.Offset(0, 2).Value
                txtIbanNo = ActiveCell.Offset(0, 3).Value
                txtGsmNo = ActiveCell.Offset(0, 4).Value
      For i = 1 To 88
                txtToplam.Value = ActiveCell.Offset(0, 5).Value
                Controls("TextBox" & i).Value = ActiveCell.Offset(0, i + 5).Value
      Next
                
            Exit Sub
        End If
    Next bak
    MsgBox "Aradığınız sayıda bir kayıt bulunamadı"

Textbox isimleri düzenli ve sıralı gittiğinden prosedür içinde kullandığımız döngü işlemi kısaltmamıza yardımcı olur..
 
merhaba

Denedim bilgiler geliyor

Ayrıca bu kadar kod yazmaya gerek yok bütün kodlarınız çok uzun
textbox ve hücreler düzgün bir sıra ile gittiğine göre döngü ile kısa şekilde işinizi halledebilirsiniz.

txtToplam.Value = ActiveCell.Offset(0, 5).Value
....
.....
exit sub

arasına aşağıdaki kodları yazarak verileri getirtebilirsiniz.


Kod:
On Error Resume Next
                 For i = 1 To 88
 
                Controls("textbox" & i) = ActiveCell.Offset(0, i + 5).Value
 
                Next

Böyle uzun kodlarla çalıştığınızda
textbox1 ile başlayıp textbox88 ile biten yerleri silip aşağıdaki kodları tarifime göre yerleştiriniz.

sütun yerine i değerini kullanın
5. sütundaki verinin gelmesi isteniyorsa
100 adet textbox olduğunu düşünürsek

For i=1 to 100
Controls("textbox" & i) =Cells(.....,i+4) kullanın

next
 
Merhaba

Sayın Taruz aynı şeyleri ifade eden sizin mesajınızı görmeden açıklama göndermişim.
Ayrıca bazı cümlelerde bire bir aynı :)
 
İlgi ve alakalınız için çok teşekkür ederim. Henüz işin başında sayılırım.
 
Arkadaşlar Uygulamayı yolluk programı olarak uyarladım eksik tarafları var.Yardımcı olursanız sevinirim. Eklemek istediğim özellikler :
1-kişi ünvanlarına göre farklı olan yolluk miktarlarının kontrolu sonrasında uyarı vermesi ,
örnek :
Ahmet Yılmaz Müdür 1200 -> burada girmiş olduğumuz makbuz toplamına göre 1200 sabitini kontrol ederek uzerine çıkmayıp uyarı vermesi

Ali Ak Memur 1000 -> burada girmiş olduğumuz makbuz toplamına göre 1000 sabitini kontrol ederek uzerine çıkmayıp uyarı vermesi,

mevcut uygulamada ünvan ve yolluk miktar bilgileri yer almıyor,

2-izinli olan personele göre uyarı vermesi, -> izinli olan personelin comboda renk uyarısı veya o kişinin makbuz girişi nasıl kilitlenebilir..

karışık olmadığını ümit ediyorum

şimdiden teşekürler.
 
Geri
Üst