Arama Ayarlarında Sorun Yaşıyorum

Katılım
28 Mart 2015
Mesajlar
24
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
20-03-2024
Arkadaşlar herkese iyi çalışmalar. Kodlarının tam olarak ne işe yaradığını bilmediğim bir arama kodları kullanıyorum. Bu kodlar ile listbox üzerinde arama yapıyorum.

Değerli üstadlarımdan 2 ricam var.. Birinci koyu olarak işaretlediğim kısımların ne işe yaradığını bana kısaca notlayabilecek bir arkadaşa ihtiyacım var..

İkincisi arama ayarlarında Substring Out Of Range Runtime Error 9 hatası alıyorum. Hangi harfe veya rakama basarsam basayım hata veriyor. Öncesinde çalışıyordu ama nerede hata yaptım bulamadım bir türlü..Yardımcı olacak arkadaşlara teşekkür ediyorum.

Private Sub TextBox1_Change()

' Dim PerSonSatirA As Long
'
' PerSonSatirA = Sheets("PERODM").Cells(Rows.Count, "A").End(xlUp).Row

Dim S1 As Worksheet, Veri As Variant, Son As Long
Dim Ad As String, aranan As String, X As Long, Say As Long

Set S1 = Sheets("PERODM")

Son = S1.Cells(Rows.Count, "D").End(xlUp).Row
Veri = S1.Range("A2:J" & Son).Value

If TextBox1.Text = "" Then

ListBox1.RowSource = "PERODM!A2:J" & Son 'lisbox'ta gösterilecek hücre aralığı
ListBox1.ColumnCount = 10 ' lisbox'ta ki sütun sayısı
'ListBox1.ColumnWidths = 100 & ";" & 70 'lisbox'taki sütunların genişliği


End If

ReDim Liste(1 To UBound(Veri, 1), 1 To 1)

On Error Resume Next
ListBox1.Clear
ListBox1.RowSource = ""
On Error GoTo 0

If TextBox1 <> "" Then
For X = LBound(Veri) To UBound(Veri)
Ad = UCase(Replace(Replace(Veri(X, 4), "ı", "I"), "i", "İ")) 'ARAMANIN YAPILACAĞI SÜTUNU BELİRTİR X'İN YANINDAKİ SAYI(sanırım ama emin değilim)
aranan = UCase(Replace(Replace(TextBox1, "ı", "I"), "i", "İ"))
If Ad Like "*" & aranan & "*" Then


Say = Say + 1
For Y = 1 To UBound(Veri, 2) ' sanırım burası da For Döngüsünde 1 den UBOUND yani veri isimli sayfanın sonuna kadar git uyarısı
ReDim Preserve Liste(1 To UBound(Veri, 1), 1 To Say)
Liste(Y, Say) = Veri(X, Y) ' burayı hiç anlamadım...

Next



End If
Next
If Say > 0 Then
ListBox1.ColumnCount = 10
ListBox1.ColumnWidths = 50
ListBox1.ColumnHeads = False
ListBox1.Column = Liste
End If

Else
Call UserForm_Initialize

End If
 
Katılım
28 Mart 2015
Mesajlar
24
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
20-03-2024
Edit: Döngüde özellikle aşağıda kısımda hata alıyorum..

Liste(Y, Say) = Veri(X, Y)
 
Katılım
28 Mart 2015
Mesajlar
24
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
20-03-2024
Arkadaşlar sorunumu çözdüm.

Çözümüm biraz ilginç oldu ama sonunda hallettim Şöyle ki;

Verilerimi excelde başka bir userform aracılığıyla kayıt ediyordum. Bu hatayı almadan önce sorunsuz çalışıyordu. Verilerin fazla olması nedeniyle bir kısmını silmiştim. Ondan sonra sistem hata vermeye başladı. Ne hikmettir bilmiyorum ama verilerin kayıt şekliyle olduğunu düşünüyorum.
Veri tabanını temizleyip yeniden aynı şekilde userform üzerinden düzenli kayıt yapınca sorunum düzeldi. Belki aynı sorunu yaşayan arkadaşlar olursa bilgi olması amacıyla paylaşmak istedim.

Herkese iyi çalışmalar diliyorum.
 
Üst