Soru worksheet function sınıfının match özelliği alınamıyor hatası

Katılım
2 Ağustos 2022
Mesajlar
129
Excel Vers. ve Dili
2019-Türkçe
Arkadaşlar selam.
Aşağıdaki kodlarda, "run time error:1004 worksheet function sınıfının match özelliği alınamıyor" şeklinde hata verip,

bul = WorksheetFunction.Match(ComboBox1.Value, S1.Range("B3:B7"), 0)

satırı sarıya boyuyor.
Sebebi ve çözümü konusunda yardımlarınızı bekliyorum.
Yardımlarınız için şimdiden teşekkür ederim.

Kodlar şöyle :

Private Sub ComboBox1_Change()
' On Error Resume Next
Set S1 = Sheets("Aidat Takip")
Set s2 = Sheets("Aidat Borçları")
If ComboBox1.Value = "" Then Exit Sub
UserForm11.ListBox1.Visible = 1
UserForm11.ListBox2.Visible = 1
UserForm11.ListBox4.Visible = 1
UserForm11.Label121.Visible = 1
UserForm11.Label1008.Visible = 1
UserForm11.Label1014.Visible = 1
UserForm11.TextBox3.Visible = 1
UserForm11.TextBox4.Visible = 1
For i = 2 To S1.Cells(Rows.Count, "b").End(3).Row
If ComboBox1.Value = S1.Cells(i, "b") Then
TextBox2.Value = S1.Cells(i, "b")
'ListBox1.RowSource = "Aidat_Takip!p3:p102" 'lisbox'ta gösterilecek hücre aralığı
'ListBox2.RowSource = "Aidat_Borc!c3:c102" 'lisbox'ta gösterilecek hücre aralığı
UserForm11.TextBox3.Value = UserForm11.TextBox2.Value
End If
Next
bul = WorksheetFunction.Match(ComboBox1.Value, S1.Range("B3:B7"), 0)
bul2 = WorksheetFunction.Match(ComboBox1.Value, s2.Range("B2:B7"), 0)
ListBox1.RowSource = ""
ListBox1.Clear
ListBox1.AddItem (S1.Cells(bul + 2, "P").Value)
ListBox2.RowSource = ""
ListBox2.Clear
ListBox2.AddItem (s2.Cells(bul2 + 1, "c").Value)
ListBox4.RowSource = ""
ListBox4.Clear
ListBox4.AddItem ((S1.Cells(bul + 2, "P").Value) - (s2.Cells(bul2 + 1, "C").Value))
Select Case ListBox4.List(0)
Case Is = 0: TextBox4 = TextBox3 & " Adlı Kişinin" & " ALACAĞI ve BORCU Yoktur."
Case Is < 0: TextBox4.Text = TextBox3 & " Adlı Kişinin" & " " & ListBox4.List(0) & " TL BORCU Vardır."
Case Is > 0: TextBox4 = TextBox3 & " Adlı Kişinin" & " " & ListBox4.List(0) & " TL ALACAĞI Vardır."
End Select
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Aradığınız değer bulunamadığında hata verir.

Aşağıdaki gibi deneyin.

Kod:
Sub test()
    Dim Bul As Variant
    Bul = WorksheetFunction.Match(ComboBox1.Value, S1.Range("B3:B7"), 0)
    If IsError(Bul) Then
        Bul = 0
    End If
End Sub
 
Katılım
2 Ağustos 2022
Mesajlar
129
Excel Vers. ve Dili
2019-Türkçe
Sub test() Dim Bul As Variant Bul = WorksheetFunction.Match(ComboBox1.Value, S1.Range("B3:B7"), 0) If IsError(Bul) Then Bul = 0 End If End Sub
Muzaffer Ali Bey.
Öncelikle ilginize ve emeğinize teşekkür ederim.
Kodlar işimi görmedi. Hata bende de olabilir. Kodları modüle mi yoksa kodların başına ya da sonuna mı ekleyeceğimi bilemedim.
Tekrar yardımlarınızı bekliyorum.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Bu satır sileceksiniz.
Kod:
bul = WorksheetFunction.Match(ComboBox1.Value, S1.Range("B3:B7"), 0)
yerine aşağıdaki kodları kopyalayacaksınız.
Kod:
    Dim Bul As Variant
    Bul = WorksheetFunction.Match(ComboBox1.Value, S1.Range("B3:B7"), 0)
    If IsError(Bul) Then
        Bul = 0
    End If
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Ayrıca aşağıdaki satırı da sileceksiniz.
Kod:
bul2 = WorksheetFunction.Match(ComboBox1.Value, s2.Range("B2:B7"), 0)
yerine aşağıdaki kodları kopyalayacaksınız.

Kod:
    Dim Bul2 As Variant
    Bul2 = WorksheetFunction.Match(ComboBox1.Value, S1.Range("B3:B7"), 0)
    If IsError(Bul2) Then
        Bul2= 0
    End If
Bir daha Match fonksiyonunu kullanırsanız bu şekilde kullanmalısınız.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Yada aşağıdaki gibi de yapabilrsiniz.
Saymak istediğiniz yoksa yada diğer bir değişle sonuç 0 ise uyarı versin kodların çalışması durdurulsun.

Kod:
    Dim Bul As Variant
    Bul = WorksheetFunction.Match(ComboBox1.Value, S1.Range("B3:B7"), 0)
    If IsError(Bul) Then
        msgbox "Sıfır adet olduğu için işlem yapılamıyor.
        exit sub
    End If
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,250
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif olarak "Find" komutunu deneyebilirsiniz. Forumda örnekleri var.
 
Katılım
2 Ağustos 2022
Mesajlar
129
Excel Vers. ve Dili
2019-Türkçe
Ayrıca aşağıdaki satırı da sileceksiniz.
Kod:
bul2 = WorksheetFunction.Match(ComboBox1.Value, s2.Range("B2:B7"), 0)
yerine aşağıdaki kodları kopyalayacaksınız.

Kod:
    Dim Bul2 As Variant
    Bul2 = WorksheetFunction.Match(ComboBox1.Value, S1.Range("B3:B7"), 0)
    If IsError(Bul2) Then
        Bul2= 0
    End If
Bir daha Match fonksiyonunu kullanırsanız bu şekilde kullanmalısınız.
Tamamdır. Sorun halloldu.
Çok teşekkür ederim.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Rica ederim. Kolay gelsin.
 
Üst