• DİKKAT

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

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

  • Konbuyu başlatan Konbuyu başlatan 35ibo45
  • Başlangıç tarihi Başlangıç tarihi
Katılım
2 Ağustos 2022
Mesajlar
133
Excel Vers. ve Dili
2021-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
 
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
 
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.
 
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
 
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.
 
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
 
Alternatif olarak "Find" komutunu deneyebilirsiniz. Forumda örnekleri var.
 
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.
 
Rica ederim. Kolay gelsin.
 
Geri
Üst