- 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
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