Match (kaçıncı) fonksiyonunu uygulamak.

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
Selam arkadaşlar,
Makrolalı işlemlerde kaçıncı fonksiyonu sürekli hata veriyor.formda kullanılmış bir örneginide hiç görmedim,sorun uygulamadan mı yada sayfadaki fonksiyonlar gibi düşündüğüm(kaçıncı(aranandeğer;dizi;eşleştirtür) gibi yani) içinmi bilemiyorum.

Kod:
Cells(1, "x").Value = WorksheetFunction.Match(Cells(1, "z"), Range("a1:a65000"), 0)
hata kodu:
run-time error "1004";
worksheetfunction sınıfının match özelligi alınamıyor.
yardımcı olacak arkadaşlara şimdiden teşekkürler.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,533
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Bulamadığı zaman o hatayı alıyorsunuz.
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
Çok teşekkürler,tam bende hatanın sebebini bulmuştum yanlış sayfada aratıyormuşum. Saygılar.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ben bu yüzden match worksheetfunctionunu kodamalarımda kullanmıyorum.
Onun yerine find komutunu kullanıyorum.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,533
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Neden Find komutunu kullanmıyorsunuz?
Aşağıdaki kod D1 hücresini A sütununda arar ve sonucu E1 hücresine yazar.


Kod:
Sub AraBul()
Set Bul = Range("A:A").Find([D1], LookIn:=xlValues)
If Not Bul Is Nothing Then
    Range("E1") = Bul.Row
Else
    Range("E1") = ""
End If
End Sub
 

Ekli dosyalar

  • 32.5 KB Görüntüleme: 87

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
Kod:
Sub fdl()
Dim d As Double
Dim bs As Integer
Dim i, h As Long
Dim s1, s2, s3 As Worksheet
Set s1 = Sheets("YEVMİYE")
Set s2 = Sheets("FİRMA KAYIT")
Set s3 = Sheets("RAPORLAMA")
d = WorksheetFunction.Match(s1.Cells(18, "I").Value, s2.Range("c1:c65000"), 0)
son = s1.Range("A65000").End(xlUp).Row
For i = 3 To son
If s1.Cells(i, 3).Value = s1.Cells(18, "I").Value Then
bs = s3.Range("A65000").End(xlUp).Row + 1
For h = 1 To 15
s3.Cells(bs, h).Value = s2.Cells(d, h).Value
Next
s3.Cells(bs, 16).Value = s1.Cells(i, 4).Value
s3.Cells(bs, 17).Value = s1.Cells(i, 7).Value
End If
Next
End Sub
kullandıgım kod buydu s2 sayfasındaki satır numarasını arıyordum.haklısınız find'de olurdu,arasıra kullanıyorum sadece bir kaç denememde hata almıştım ögrenmek adına sorayım dedim. ilginize teşekkürler ,saygılar.
 
Katılım
3 Nisan 2014
Mesajlar
395
Excel Vers. ve Dili
Excel 2019 - Türkçe
Altın Üyelik Bitiş Tarihi
14-04-2021
Merhaba,

Neden Find komutunu kullanmıyorsunuz?
Aşağıdaki kod D1 hücresini A sütununda arar ve sonucu E1 hücresine yazar.


Kod:
Sub AraBul()
Set Bul = Range("A:A").Find([D1], LookIn:=xlValues)
If Not Bul Is Nothing Then
    Range("E1") = Bul.Row
Else
    Range("E1") = ""
End If
End Sub


Merhaba,

Aşağıdaki kodlarla combobxtaki bir değerin, listenin kaçıncı satırında olduğunu bulmaya çalışıyorum fakat hata veriyor. Atıyorum aranan değer A17'de, bana 17 sonucunu vermesini istiyorum.

Find ile mümkün müdür? Ya da match ile nasıl yapabilirim?

Teşekkürler



Kod:
Set Data = Sheets("Data Entry (Talep Girişi)")
Data.Select
a = ComboBox1.Value
i = Application.WorksheetFunction.Match(a, Range("A1:A10000"), 0)
 

Ekli dosyalar

Son düzenleme:

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar,
İki alternatifi de ekliyorum:
Kod:
Sub Kacıncı()
Set Data = Sheets("Data Entry (Talep Girişi)")
Data.Select
a = ComboBox1.Value
If WorksheetFunction.CountIf(Range("A1:A10000"), a) > 0 Then
i = WorksheetFunction.Match(a, Range("A1:A10000"), 0)
MsgBox i
End If
End Sub
Kod:
Sub AraBul()
Set Data = Sheets("Data Entry (Talep Girişi)")
Data.Select
a = ComboBox1.Value
Set Bul = Range("A1:A10000").Find(a, LookIn:=xlValues)
If Not Bul Is Nothing Then
    i = Bul.Row
    MsgBox i
End If
End Sub
 
Üst