listbox1.listindex nedir? niçin hata verir?

Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
merhaba sevgili dostlar ve üstadlar..
uzunca bir süre bazı sebeplerden dolayı siteden uzak kaldım.. ama gördüğüm kadarıyla paylaşımlar son hız devam ediyor.. :)

sitede arama yaptım ama tam olarak istediğimi bulamadım.. yaptığım excel çalışmasında userform üzerinden veri girişi yapılıyor ve kaydedilen verilen userform üzerindeki listboxta görüntüleniyor.. kaydet butonun makrolarında aşağıdaki kodlar mevcut:

sonsat = S1.[a65536].End(3).Row + 1
ListBox1.ListIndex = sonsat - 2

ancak 27 adet kayıt yapıldıktan sonra "listbox1.listindex=sonsat-2" satırı hata veriyor.. (Run Time Error : 308) kayıt yapılıyor ancak listboxta kayıtlar görünmüyor? bu niçin olur, nasıl düzeltebilirim ve en önemlisi bu kod satırı ne anlama geliyor? yani bunu ne için yazıyoruz?

üstelik aynı kod satırı (kaydet butonundaki kodların tamamı ile birlikte) başka bir programımda doğru olarak çalışıyor ve hiç bir hata vermiyor?

saygılar..
 
Son düzenleme:

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,283
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Hoş geldiniz..

Listbox ta indexler "0" dan başlar. Genelde hatalar burada başlıyor.

yapının tamamını görmeden, test etmeden, hata iletisini görmeden ancak tahmin edebiliriz.
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
çalışmam işyerindeki bilgisayarda olduğu için ekleyemiyorum.. ancak kodların şu şekilde olduğunu tahmin ediyorum:

Kod:
Private Sub CommandButton1_Click()
Set S1 = Sheets("EVRAK")
sonsat = S1.[a65536].End(3).Row + 1
For c = 1 To 9
S1.Cells(sonsat, c) = Controls("TextBox" & c)
Next
tanimla2
tanimla
UserForm_Initialize
[COLOR=Red]ListBox1.ListIndex = sonsat - 2[/COLOR]
Sheets("ANASAYFA").Select
CommandButton4_Click

End Sub
Kod:
Private Sub UserForm_Initialize()
    Set S1 = Sheets("EVRAK")
        S2 = Sheets("FAKS")
    sonsat = S1.[a65536].End(3).Row
    TextBox2 = Format(Date, "dd.mm.yyyy")
    TextBox8 = Format(Date, "dd.mm.yyyy")
    TextBox2.Enabled = False
    TextBox1.Enabled = False
    TextBox8.Enabled = False
    TextBox1 = S1.Cells(sonsat, 1) + 1
ListBox1.ColumnCount = 9
ListBox1.ColumnWidths = "25;55;100;55;75;25;150;55;45"
ListBox1.RowSource = "EVRAK!a2:ı" & [a65536].End(3).Row
CommandButton2.Enabled = False
CommandButton3.Enabled = False
Me.Top = 40
Me.Left = 80
End Sub
evet sıfırdan başladığını biliyorum, ve genelde dikkate alıyorum.. ancak listboxta 27 satır kayıt görünmesi ve 28. satırdan itibaren bu hatayla (kırmızı renkli satır) birlikte kayıt yapılmasına rağmen listboxta görünmemesi neden olabilir? birde tam olarak bu satır ne anlama geliyor?

varsayımlar üzerinden cevap vermek çok güç biliyorum ama yardımcı olabileceğinizi umuyorum..
saygılar..
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub CommandButton1_Click()
Set S1 = Sheets("EVRAK")
sonsat = S1.[a65536].End(3).Row + 1
For c = 1 To 9
S1.Cells(sonsat, c) = Controls("TextBox" & c)
Next
tanimla2
tanimla
UserForm_Initialize
if sonsat => 2 then 
    [COLOR=red]ListBox1.ListIndex = sonsat - 2[/COLOR]
[COLOR=#ff0000]else [/COLOR]
[COLOR=#ff0000]   ListBox1.ListIndex = 0[/COLOR]
[COLOR=#ff0000]end if[/COLOR]
sanki işinizi görecektir.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
..........................................
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,283
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Kırmızı satır listede satırı seçili hale getirmeye yarıyor.

Anladığım kadarıyla son satır seçili yapılmak isteniyor.

Şunu deneyin.

Kod:
[COLOR=Red]ListBox1.ListIndex = listbox1.listcount - 1[/COLOR]
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
ilginiz ve önerileriniz için teşekkürler.. ancak anlayamadığım nokta şu; yapılan kayıtların tamamını listboxta göremiyorum.. yalnızca 27 satır kayıt görüyorum.. bu kod satırını kaldırdığımda da sonuç değişmiyor.. eğer bu kod satırı son satırı seçili yapmaya yarıyorsa, benim diğer problemim neyden kaynaklanıyor olabilir? ve önerileriniz sorunu çözebilir mi?
 
Üst