Spinbutton ile ilgili

Katılım
8 Haziran 2005
Mesajlar
13
Merhaba,

Spindown ve spinup butonlarına basıldığında listbox üzerinde bulunan kayıtların üzerinde dolaşmasını sağlayan bir koda ihtiyacım var.

Yani, spindown butonuna bastığımda listbox1'de bulunan secili satırında aşağıya inmesini, spinup butonuna basıldığında listbox1'de bulunan secili satırın yukarıya çıkmasını sağlamak istiyorum. Bu arada gördüğüm kadarıyla userform ilk açıldığında listbox'da hiçbir kayıt secili gelmiyor. İlk önce mevcut ilk yada son kaydın seçilmesi gerekecekmi?

Yardımcı olabilirseniz sevinirim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin.

[vb:1:ef629232db]Private Sub SpinButton1_Change()
ListBox1.ListIndex = SpinButton1.Value
End Sub
[/vb:1:ef629232db]

Not:spinbuttonun üst sınırını listboxın satır sayısı ile aynı olmasına dikkat edin.
 
Katılım
12 Haziran 2005
Mesajlar
95
leventm nin cevabından sonra biraz uzun olacak ama, formu kapatırken seçili liste elemanı varsa hata vermez. alternatif olarak elinde bulunsun.
[vb:1:240d5fa84e]For i = 1 To ListBox1.ListCount
If ListBox1.Selected(i - 1) = True Then Exit For
Next i
If i < ListBox1.ListCount Then ListBox1.Selected(i) = True

End Sub

Private Sub SpinButton1_SpinUp()
For i = 1 To ListBox1.ListCount
If ListBox1.Selected(i - 1) = True Then Exit For
Next i
If i > 1 Then ListBox1.Selected(i - 2) = True
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
ListBox1.RowSource = "Sayfa1!B7:B20"
ListBox1.Selected(0) = True
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
For i = 1 To ListBox1.ListCount
If ListBox1.Selected(i - 1) = True Then Exit For
Next i
ListBox1.Selected(i - 1) = False

End Sub
[/vb:1:240d5fa84e]
 
Üst