Makro İle Textboxda Arama

Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Merhaba hocalarım bu kod ta textbox birşey yazmaya başlayınca hata veriyor. .RowSource = "" Bu Satırda Hata veriyor. Object required Hatası Yardımcı olursanız çok sevirim iyi günler dilerim

Kod:
Private Sub TextBox1_Change()
Dim stok As Worksheet, ara As Worksheet
Dim son As Long, ara_son As Long, x As Long

If TextBox1.Value = "" Then
    lststok.RowSource = ""
    lststok.Clear
    Exit Sub
End If

Set stok = Sheets("MerkezFiyat")
Set ara = Sheets("Stok_Arama")
son = stok.Range("B" & Rows.Count).End(xlUp).Row
ara_son = ara.Range("B" & Rows.Count).End(xlUp).Row
ara.Range("A1:C" & ara_son + 1).Clear

aranan = TextBox1.Value

For x = 2 To son
    If stok.Cells(x, "B").Value Like "*" & aranan & "*" Then
        ara_son = ara.Range("B" & Rows.Count).End(xlUp).Row + 1
        ara.Cells(ara_son, "A").Value = stok.Cells(x, "A").Value
        ara.Cells(ara_son, "B").Value = stok.Cells(x, "B").Value
        ara.Cells(ara_son, "C").Value = stok.Cells(x, "C").Value
    End If
Next

    With lststok
        .RowSource = ""
        .Clear
        .ColumnCount = 2
        .RowSource = "Stok_Arama!A1:C" & ara_son
    End With
End Sub
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Dosyanızı görmeden yazıyorum.

ColumnCount=2 demişsiniz
"Stok_Arama!A1:C" & ara_son aralığını yani 3 sütun belirtiyorsunuz.

Birisi hatalı olsa gerek.
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Dosyanızı görmeden yazıyorum.

ColumnCount=2 demişsiniz
"Stok_Arama!A1:C" & ara_son aralığını yani 3 sütun belirtiyorsunuz.

Birisi hatalı olsa gerek.
Merhaba hocam dosyamı ekledim dediğiniz yeri düzelttim ama yine aynı hatayı verdi
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
sayfanızda lststok öğresi nerede?
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Sütundamı olması gerekiyor hocam
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Cevabımın evet olduğunu varsayabilirsiniz.
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Ama hocam yine hata alıyorum ben anlamadım k.bakmayın
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Açıkçası ben de anlamadım.
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Teşekkürler üstadım iyi günler dilerim
 
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Başka yardımcı olucak varmıdır acaba
 

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,106
Excel Vers. ve Dili
office2010
Amacınız sayfaya listelemek ise kodu bu şekilde deneyiniz.

Kod:
Private Sub TextBox1_Change()
Dim stok As Worksheet, ara As Worksheet, Tbl()
Dim son As Long, ara_son As Long, x As Long
Set stok = Sheets("MerkezFiyat")
Set ara = Sheets("Stok_Arama")
son = stok.Range("B" & Rows.Count).End(xlUp).Row
Tbl = stok.Range("A2:C" & son).Value
ReDim v(1 To UBound(Tbl), 1 To 3)
    If TextBox1 = "" Then
        ara.[A2].Resize(UBound(Tbl)).NumberFormat = "@"
        ara.[C2].Resize(UBound(Tbl)).NumberFormat = "#,##0.00"
        ara.[A2].Resize(UBound(Tbl), 3).Value = Tbl
        ara.[A2].Resize(UBound(Tbl), 3).Borders.Color = rgbSilver
    Else
        xx = UCase(Replace(Replace(TextBox1, "i", "İ"), "ı", "I"))
        aranan = "*" & xx & "*"
        For x = 1 To UBound(Tbl)
            yy = UCase(Replace(Replace(Tbl(x, 2), "i", "İ"), "ı", "I"))
            If yy Like aranan Then
                say = say + 1
                For j = 1 To 3
                    v(say, j) = Tbl(x, j)
                Next j
            End If
        Next x
        ara_son = ara.Range("B" & Rows.Count).End(xlUp).Row
        ara.Range("A2:C" & ara_son + 1).ClearContents
        ara.Range("A2:C" & ara_son + 1).ClearFormats
        If say > 0 Then
            ara.[A2].Resize(say).NumberFormat = "@"
            ara.[C2].Resize(say).NumberFormat = "#,##0.00"
            ara.[A2].Resize(say, 3) = v
            ara.[A2].Resize(say, 3).Borders.Color = rgbSilver
        End If
    End If
End Sub
 
Son düzenleme:
Katılım
4 Eylül 2020
Mesajlar
394
Excel Vers. ve Dili
Excel 2016
Altın Üyelik Bitiş Tarihi
22-11-2022
Amacınız sayfaya listelemek ise kodu bu şekilde deneyiniz.

Kod:
Private Sub TextBox1_Change()
Dim stok As Worksheet, ara As Worksheet, Tbl()
Dim son As Long, ara_son As Long, x As Long
Set stok = Sheets("MerkezFiyat")
Set ara = Sheets("Stok_Arama")
son = stok.Range("B" & Rows.Count).End(xlUp).Row
Tbl = stok.Range("A1:C" & son).Value
ReDim v(1 To UBound(Tbl), 1 To 3)
    If TextBox1 = "" Then
        ara_son = ara.Range("B" & Rows.Count).End(xlUp).Row
        ara.Range("A2:C" & ara_son + 1).ClearContents
        ara.Range("A2:C" & ara_son + 1).ClearFormats
    Else
        xx = UCase(Replace(Replace(TextBox1, "i", "İ"), "ı", "I"))
        aranan = "*" & xx & "*"
        For x = 2 To UBound(Tbl)
            yy = UCase(Replace(Replace(Tbl(x, 2), "i", "İ"), "ı", "I"))
            If yy Like aranan Then
                say = say + 1
                For j = 1 To 3
                    v(say, j) = Tbl(x, j)
                Next j
            End If
        Next x
        ara_son = ara.Range("B" & Rows.Count).End(xlUp).Row
        ara.Range("A2:C" & ara_son + 1).ClearContents
        ara.Range("A2:C" & ara_son + 1).ClearFormats
        If say > 0 Then
            ara.[A2].Resize(say).NumberFormat = "@"
            ara.[C2].Resize(say).NumberFormat = "#,##0.00"
            ara.[A2].Resize(say, 3) = v
            ara.[A2].Resize(say, 3).Borders.Color = rgbSilver
        End If
    End If
End Sub
Merhaba hocam çok teşekkür ederim aradığım kod ellerinize sağlık . Bir şey isteyebilirmiyim textbox boşken bütün bilgiyi çekse ana sayfadan olurmu
 
Üst