• DİKKAT

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

listbox daki arama kodlarında sadeleştirme

  • Konbuyu başlatan Konbuyu başlatan Kocbey
  • Başlangıç tarihi Başlangıç tarihi
Katılım
8 Şubat 2010
Mesajlar
30
Excel Vers. ve Dili
2003 Türkçe
Daha önceleri forumdaki ustalarımın yardımı ile bazı makro kodları edinmiştim ama uzun süredir excel ile uğraşmadığım için yapılanları ve yaptıklarımı hatırlamakta güçlük çekiyorum

kullandığımız macro kodu ile Texbox a yazdığımızı arama yaparak listbox ta listeleme yapıyorduk benim isteğim kodlardan bazı satırların çıkartılması


Kod:
Option Explicit
Private Sub TextBox1_Change()
Dim sh As Worksheet
Dim bul As Range, rg As Range
Dim y As Integer, satir As Integer, x As Integer
Dim i As Integer, j As Integer
Dim arrSatir()
Dim arrveri()
Dim adres As String
If Trim(TextBox1) = Empty Then: ListBox2.Clear: Exit Sub
Set sh = Sheets("TOPLATMA")
Set rg = sh.Range("B1:B65536")
Set bul = rg.Find(What:=TextBox1, Lookat:=xlPart)
ListBox2.Clear
ListBox2.ColumnWidths = "40;[COLOR="Blue"][B]1;1;1;1[/B][/COLOR];300;75;75;75;75;65;65;150"

ListBox2.ColumnCount = 18
If Not bul Is Nothing Then
   adres = bul.Address
   Do
      If bul.Row = satir Or bul.Row = 1 Then: GoTo f1
      satir = bul.Row
      ReDim Preserve arrSatir(x)
      arrSatir(x) = bul.Row
      x = x + 1
f1:
      Set bul = rg.FindNext(bul)
   Loop While Not bul Is Nothing And bul.Address <> adres
End If
On Error Resume Next
ReDim Preserve arrveri(UBound(arrSatir) + 1, 0)
arrveri(0, 0) = "Sıra No"
For i = 1 To UBound(arrSatir) + 1
    arrveri(i, 0) = sh.Cells(arrSatir(i - 1), 1)
Next i
[COLOR="Red"]ReDim Preserve arrveri(UBound(arrSatir) + 1, 4)
arrveri(0, 1) = "Görevli-1": arrveri(0, 2) = "Görevli-2"
arrveri(0, 3) = "Görevli-3": arrveri(0, 4) = "Görevli-4"For i = 1 To UBound(arrSatir) + 1
    For j = 1 To 4
        arrveri(i, j) = sh.Cells(arrSatir(i - 1), j + 26)[/COLOR]
    Next j
Next i
ReDim Preserve arrveri(UBound(arrSatir) + 1, 30)
For i = 1 To 25
    arrveri(0, i + 4) = sh.Cells(1, i + 1)
Next i
For i = 1 To UBound(arrSatir) + 1
    For j = 5 To 29
        arrveri(i, j) = sh.Cells(arrSatir(i - 1), j - 3)
    Next j
Next i
ListBox2.List = arrveri
ListBox2.ListIndex = 0
Set sh = Nothing
End Sub

Kırmızı renk ile işaretlediğim yerdeki kodlarda listemizdeki sıralamada 4 ismi ilk başa taşıması amaçlanmıştı. ben bu satırları çıkartıyorum ama fazladan başka birşeyleride siliyorum herhalde hata yapıyor.
Gerçi istediğim işi ListBox2.ColumnWidths satırındaki sayısal değerleri 1 yaparak kapattım ama ne kadar çok kod o kadar çok karmaşıklık ve hata demektir sözünü siz değerli ustalarımdan duymuştum
 
Geri
Üst