• DİKKAT

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

ListBox tan Veri Alma

Mustafa MUTLU

Destek Ekibi
Destek Ekibi
Katılım
24 Temmuz 2008
Mesajlar
1,587
Excel Vers. ve Dili
Ofis 2013 TR 32 Bit
UserForm a aşağıdaki kodlarla süz yaptırıyorum.
Ancak Listbox tan seçim yaptığımda
Sayfadaki kayıta göre veri geliyor
Süz yaptığım için Listbox sıralaması ile Kayıt sıralaması farklı oluyor.
Sonuçta Textbox lara yanlış sıradan veri geliyor.

Sizlerden İstediğim :
Süz yaptıktan sonra
ListBox ta ki verilerden hangisini seçersem
O Veri yi Textbox ta görmek.



Private Sub ComboBox1_Change()
ListBox1.Clear
For suz = 1 To WorksheetFunction.CountA(Range("B2:B65536"))
If Range("B" & suz) Like ComboBox1 & "*" Then
ListBox1.AddItem
s = s + 1
ListBox1.List(s - 1, 0) = Range("B" & suz)
End If
Next
End Sub

Private Sub ListBox1_Click()
Cells(ListBox1.ListIndex + 2, 1).Select
TextBox1.Text = Cells(ActiveCell.Row, "B")
TextBox2.Text = Cells(ActiveCell.Row, "C")
TextBox3.Text = Cells(ActiveCell.Row, "D")
TextBox4.Text = Cells(ActiveCell.Row, "E")
TextBox5.Text = Cells(ActiveCell.Row, "F")

End Sub


Private Sub UserForm_Initialize()
ComboBox1 = 1
ComboBox1 = Empty
End Sub

TEŞEKKÜRLER...........
 
Dosya eklemeyi unutmuşum..
Dosya ekte...
 

Ekli dosyalar

merhaba.
Bu olurmu?
Olurmu,olur. ;)
Dosyanız ektedir.:)
Kod:
Private Sub ComboBox1_Change()
ListBox1.Clear
For suz = 2 To WorksheetFunction.CountA(Range("B2:B65536"))
If Range("B" & suz) Like ComboBox1 & "*" Then
ListBox1.AddItem
s = s + 1
ListBox1.List(s - 1, 0) = Range("B" & suz)
[B][COLOR="Red"]ListBox1.List(s - 1, 1) = Range("A" & suz)[/COLOR][/B]
End If
Next
End Sub

Private Sub ListBox1_Click()
Dim k As Range, sh As Worksheet, sat As Long
[B]If ListBox1.ListCount < 1 Then Exit Sub[/B]
[B][COLOR="Red"]Set sh = Sheets("Sayfa1")
sat = sh.Cells(65536, "A").End(xlUp).Row
Set k = sh.Range("A2:A" & sat).Find(ListBox1.Column(1), , xlValues, xlWhole)[/COLOR][/B]
[B][COLOR="Red"]If Not k Is Nothing Then[/COLOR][/B]
    TextBox1.Text = Cells([B][COLOR="Red"]k.Row[/COLOR][/B], "B")
    TextBox2.Text = Cells([B][COLOR="Red"]k.Row[/COLOR][/B], "C")
    TextBox3.Text = Cells([B][COLOR="Red"]k.Row[/COLOR][/B], "D")
    TextBox4.Text = Cells([B][COLOR="Red"]k.Row[/COLOR][/B], "E")
    TextBox5.Text = Cells([B][COLOR="Red"]k.Row[/COLOR][/B], "F")
End If
End Sub
 

Ekli dosyalar

Son düzenleme:
Teşekkürler
İsteğim Buydu Saol...
 
Eline sağlık güzel oldu ama bir hatası var.
Son Satırı ListBox ta göremiyorum..
 
Arkadaşlar
T rex siteden ayrılmış

Yardım edecek başka birine ihtiyacım var
T rex ilgilendiği için ayıp olmasın diye konuyla ilgilenmeyen arkadaşlar
Lütfen bir gözden geçirirmisiniz.

Sadece Sayfada kayıtlı son satırı Listbox ta göremiyorum
Dosyanın son durumu 3 numaralı T rex arkadaşımızın mesajındadır..

Teşekkürler...........
 
Merhaba,

For suz = 2 To WorksheetFunction.CountA(Range("B2:B65536"))

Bu ifadenin sonuna +1 ekleyin.

For suz = 2 To WorksheetFunction.CountA(Range("B2:B65536")) + 1

gibi...
 
Eline sağlık güzel oldu ama bir hatası var.
Son Satırı ListBox ta göremiyorum..
:D
Ben son satıra bir şey yapmadım
O kodu siz ne yazdıysanız o idi.,
Aşağıdaki ile ilgili satırı değiştiriniz.
Kod:
For suz = 2 To cells(65536,"B").end(xlup).row
 
:D
Ben son satıra bir şey yapmadım
O kodu siz ne yazdıysanız o idi.,
Aşağıdaki ile ilgili satırı değiştiriniz.
Kod:
For suz = 2 To cells(65536,"B").end(xlup).row


Teşekkür ederim
Bu Kod işimi gördü.

Emeğine sağlık.
İyi Geceler..
 
Bir isteğim daha olacak müsadenizle.

Listbox da süzme işleminden sonra
Seçim yaptığımda o an ListBox taki sırayı seçiyor.

Yani Satır 35 deki veriyi seçip değişiklik yapmak istediğimde
Süzme işlemi sonunda ilk sıraya geldiği için o sıradaki veriyi değiştiriyor.

ListBox1_Click() işleminde süz sonrasında gerçek satırda (35.satır yada 45. satır) değişiklik yapmak istiyorum.

Teşekkürler
 
Merhaba.
Anladım.
No problem.
Ama geç oldu.
Yapan olmazsa yarın yaparım.İyi geceler.:)
Bir isteğim daha olacak müsadenizle.

Listbox da süzme işleminden sonra
Seçim yaptığımda o an ListBox taki sırayı seçiyor.

Yani Satır 35 deki veriyi seçip değişiklik yapmak istediğimde
Süzme işlemi sonunda ilk sıraya geldiği için o sıradaki veriyi değiştiriyor.

ListBox1_Click() işleminde süz sonrasında gerçek satırda (35.satır yada 45. satır) değişiklik yapmak istiyorum.

Teşekkürler
 
Teşekkür ederim.
Benimki de aptallık olacak ama.
Uğraşımı burada bırakıp yarın senin cevabını beklemem gerekiyor.
Eğer 3-5 dakika ayırabilirsen sevinirim.

İyi Geceler..
 
Teşekkür ederim.
Benimki de aptallık olacak ama.
Uğraşımı burada bırakıp yarın senin cevabını beklemem gerekiyor.
Eğer 3-5 dakika ayırabilirsen sevinirim.

İyi Geceler..
Rica ederim.
Öyle demeyin.
Dosyanız ektedir.:)
Kod:
Private Sub ComboBox1_Change()
ListBox1.Clear
For suz = 2 To WorksheetFunction.CountA(Range("B2:B65536"))
If UCase(Replace(Replace(Range("B" & suz), "ı", "I"), "i", "İ")) Like UCase(Replace(Replace(ComboBox1, "ı", "I"), "i", "İ")) & "*" Then
ListBox1.AddItem
ListBox1.List(s, 0) = Range("B" & suz)
ListBox1.List(s, 1) = Range("A" & suz)
ListBox1.List(s, 2) = suz
s = s + 1
End If
Next
End Sub

Private Sub CommandButton1_Click()
Dim sat As Long
If ListBox1.ListIndex < 0 Then Exit Sub
sat = ListBox1.Column(2)
Cells(sat, "B").Value = TextBox1.Text
Cells(sat, "C").Value = TextBox2.Text
Cells(sat, "D").Value = TextBox3.Text
Cells(sat, "E").Value = TextBox4.Text
Cells(sat, "F").Value = TextBox5.Text

Call ComboBox1_Change
End Sub

Private Sub ListBox1_Click()
Dim k As Range, sh As Worksheet, sat As Long
If ListBox1.ListCount < 1 Then Exit Sub
Set sh = Sheets("Sayfa1")
sat = sh.Cells(65536, "A").End(xlUp).Row
Set k = sh.Range("A2:A" & sat).Find(ListBox1.Column(1), , xlValues, xlWhole)
If Not k Is Nothing Then
    TextBox1.Text = Cells(k.Row, "B")
    TextBox2.Text = Cells(k.Row, "C")
    TextBox3.Text = Cells(k.Row, "D")
    TextBox4.Text = Cells(k.Row, "E")
    TextBox5.Text = Cells(k.Row, "F")
End If
End Sub


Private Sub UserForm_Initialize()
ComboBox1 = 1
ComboBox1 = Empty
End Sub
 

Ekli dosyalar

Teşekkür Ederim.
Tam istediğim gibi oldu..
 
Geri
Üst