• DİKKAT

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

ComboBox İle Seç TextBoxta Ara ve ListBox'a Getir

  • Konbuyu başlatan Konbuyu başlatan ormann
  • Başlangıç tarihi Başlangıç tarihi
Katılım
9 Ekim 2009
Mesajlar
1,626
Excel Vers. ve Dili
türkçe
2003
İyi Günler ;
Ekli dosyada veri girişinde ComboBox1 ile D3:P3 arasındaki verileri alıp; ComboBox1 de seçilen (Örneğin :Suçlunun Adını ve Soyadını Seçtiğimiz zaman ) TextBox'1 dede aratma yapıp (Aramayı ComboBox1 de seçilen veride ki sütuna göre yapacak) bulunun veriler ListBox1 e gelecek. Listbox1 de isteğimizi satırdaki verileri seçilince verilerin aynısı veri girişi sayfasında ki D4:D18 hücre aralığına gelecek. Yardımlarınızı bekliyorum.Saygılarımla
 
Kodu "Veri girişi" sayfası kod alanına yapıştırın.

Kod:
Private Sub ListBox1_Click()
    If ListBox1.ListCount > 0 And ListBox1.ListIndex <> -1 Then
        sat = ListBox1.ListIndex
        For i = 0 To 14
            Cells(i + 4, 4) = ListBox1.List(sat, i)
        Next i
        Cells(14, 4) = FormatNumber(ListBox1.List(sat, 10))
    End If
End Sub

Private Sub TextBox2_Change()
Dim SK As Worksheet, Tbl()
Set SK = Sheets("KAYITLAR")
son = SK.Cells(Rows.Count, 3).End(3).Row
If son > 3 Then
    Tbl = SK.Range("B3:P" & son).Value
    If ComboBox1.ListCount > 0 And ComboBox1.ListIndex <> -1 Then
        aranan = "*" & TextBox2.Text & "*"
        sutun = ComboBox1.ListIndex + 1
        Dim v()
        For i = 2 To UBound(Tbl)
            If Tbl(i, sutun) Like aranan Then
                say = say + 1
                ReDim Preserve v(1 To 15, 1 To say)
                For j = 1 To 15
                v(j, say) = Tbl(i, j)
                Next j
                v(6, say) = Format(Tbl(i, 6), "dd.mm.yyyy")
                v(8, say) = Format(Tbl(i, 8), "dd.mm.yyyy")
                v(11, say) = FormatNumber(Tbl(i, 11))
            End If
        Next i
        If say > 0 Then
            ListBox1.Column = v
        Else
            ListBox1.Clear
        End If
    End If
End If
End Sub

Private Sub Worksheet_Activate()
Dim SK As Worksheet
Set SK = Sheets("KAYITLAR")
son = SK.Cells(Rows.Count, 3).End(3).Row
ListBox1.Clear
If son > 3 Then
    ComboBox1.Column = SK.[B3:P3].Value
    ComboBox1.ListIndex = -1
End If
End Sub



"Bu ÇalışmaKitabı" kod alanına.


Kod:
Private Sub Workbook_Open()
Dim SK As Worksheet
Set SK = Sheets("KAYITLAR")
Sheets("VERİ GİRİŞİ").ListBox1.Clear
Sheets("VERİ GİRİŞİ").ListBox1.ColumnCount = 15
Sheets("VERİ GİRİŞİ").ListBox1.ColumnWidths = "20,80,80,50,50"  ' sutun genişliği ayarı
Sheets("VERİ GİRİŞİ").ComboBox1.Column = SK.[D3:P3].Value
Sheets("VERİ GİRİŞİ").ComboBox1.ListIndex = -1
End Sub
 
Son düzenleme:
Sayın Ziynettin çok teşekkür ederim. Şöyle bir sorun var dosyayı kapatıp açtığım zaman conboboxta veriler gözükmüyor.Kayıt sayfasına girip tekrar veri girişi sayfasına döndüğüm zaman geliyor.Ayrıca Combobax Dava No ve Mahkemesi gözükmüyor. Kayıtlar sayfasındaki sütunları ve girişi sayfasında ki D4:D18 hücre aralığını artırdığım zaman makroda nereleri değişmem yada eklemem gerekiyor. İşaretleye bilir imisiniz. Birde texboxta aramada küçük harfi bulmuyor
 
Önceki kodları silin #2. mesajdaki kodları tekrar deneyin.
 
Kod:
Private Sub Worksheet_Activate()
Dim SK As Worksheet
Set SK = Sheets("KAYITLAR")
son = SK.Cells(Rows.Count, 3).End(3).Row
ListBox1.Clear
If son > 3 Then
    ComboBox1.Column = SK.[B3:P3].Value
    ComboBox1.ListIndex = -1
End If
End Sub
Ekli kodun yerine 2.mesajdaki kodları yaptım. Fakat hiç veri gelmiyor
 
Hocam şimdi oldu .Kodlar gayet güzel çalışıyor. Yalnız büyük/küçük harfi algılamıyor. Örneğin: Suçlunun Adı ve Soyadı : ALİ DOĞAN . Textboxa küçük a yazdığımda bulmuyor. Birde Listbox'un ilk satırına Kayıtlar sayfasındaki 3.Satırdaki Başlıklar sabit şekilde gelebilir mi? (DAVA NO,SUÇLUNUN ADI ve SOYADI ,BABA ADI gibi)
 
Tetxbox2 büyük küçük harf için,


Kod:
Private Sub TextBox2_Change()
Dim SK As Worksheet, Tbl()
Set SK = Sheets("KAYITLAR")
son = SK.Cells(Rows.Count, 3).End(3).Row
If son > 3 Then
    Tbl = SK.Range("B3:P" & son).Value
    If ComboBox1.ListCount > 0 And ComboBox1.ListIndex <> -1 Then
        aranan = "*" & UCase(Replace(Replace(TextBox2.Text, "i", "İ"), "ı", "I")) & "*"
        sutun = ComboBox1.ListIndex + 1
        Dim v()
        For i = 2 To UBound(Tbl)
            If UCase(Replace(Replace(Tbl(i, sutun), "i", "İ"), "ı", "I")) Like aranan Then
                say = say + 1
                ReDim Preserve v(1 To 15, 1 To say)
                For j = 1 To 15
                v(j, say) = Tbl(i, j)
                Next j
                v(6, say) = Format(Tbl(i, 6), "dd.mm.yyyy")
                v(8, say) = Format(Tbl(i, 8), "dd.mm.yyyy")
                v(11, say) = FormatNumber(Tbl(i, 11))
            End If
        Next i
        If say > 0 Then
            ListBox1.Column = v
        Else
            ListBox1.Clear
        End If
    End If
End If
End Sub
 
Geri
Üst