Çoklu sütunda Kaçıncı değerini bulmak

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Arkadaşlar merhaba,
Kaçıncı fonksiyonun makro ile tek sütun değerlerde çalışıyor.

Sub kaçıncı()
a = Range("B2:B4").Value
MsgBox Application.Match("Ali", a, 0)
End Sub

bu kodda sorun yok.

Ama aşağıdaki gibi çoklu sütun olunca hata veriyor.

Sub kaçıncı()
a = Range("B2:C4").Value
MsgBox Application.Match("Ali", a, 0)
End Sub

İstediğimiz sütunda kaçıncı ile nasıl işlem yapabilirim?
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,763
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
FIND (CTRL+F) komutunu deneyiniz.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Korhan Bey, bunu makronun içine koyacağım. Veritabanı ile çok uğraştığım için bu yöntemi öğrenmem gerekiyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,763
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
FIND komutunu da makronuzun içine koyabilirsiniz.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Daha önce hiç Find komutunu kullanmadım ve hiç hakim değilim. Araştırayım biraz.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Sub kaçıncı()
süt = 1
Set a = Range("B2:C5")
Set d = a.Find("Ali")
MsgBox d.Row
süt = 2
Set a = Range("B2:C5")
Set d = a.Find("Ali")
MsgBox d.Row

End Sub

Find komutunda sütun değerini nereye eklemem gerekiyor. süt=1 için B sütunu, süt=2 için C sütununda nasıl aratabilirim?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,763
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Sub kaçıncı()
    süt = 1
    Set a = Range("B2:C5").Columns(süt)
    Set d = a.Find("Ali")
    MsgBox d.Row
    süt = 2
    Set a = Range("B2:C5").Columns(süt)
    Set d = a.Find("Ali")
    MsgBox d.Row
End Sub
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Süpersiniz Korhan Bey.
Bunun bir sürü parametresi vardı. Ondan karmaşık geliyordu. Bu çok iyi oldu benim için. Çok teşekkür ederim. Excel yolunda bir basamak daha koydunuz benim için.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,823
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Günaydın Korhan Hocam,
Küçük bir sıkıntı var sanırım.
Saygılarımla
 

Ekli dosyalar

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Ali değeri yoksa hata verir. Bunun için;
If Not d Is Nothing Then Msgbox d.Row şeklinde deneyiniz.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,823
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba,
Kod:
Sub kaçıncı()
    For süt = 1 To 2
        Set a = Range("B2:C5").Columns(süt)
        Set d = a.Find("Ali")
            If Not d Is Nothing  Then GoTo 99
                [A1] = süt: [A2] = d.Row
99:
    Next süt
End Sub
Bende böyle çözümledim.
İyi çalışmalar
 
Son düzenleme:

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Korhan Bey,
Sub Arama_5()
If ActiveCell.Column <> 4 Then Range("D5").Select
Set alan = Range("D5:D1000")
Set bul = alan.Find("*" & Range("P1") & "*", After:=ActiveCell)
If Not bul Is Nothing Then bul.Select
End Sub

kod, aktif hücre D sütununda değilse hata veriyor. Bunun için If koşulu ekledim. Bu hatanın çözümü bu şekil mi olmalı? Koda her çalıştığında bir sonraki değeri bulmasını istiyordum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,763
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sonuç alıyorsanız sorun yoktur.
 
Üst