Makro ile indis-çoklu kaçıncı

Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Altın Üyelik Bitiş Tarihi
30-01-2024
Merhaba
Kod biraz hızlı olsun diye for next döngüsü kullanmak istemedim, with döngüsü ile indis kaçıncı formülünün makro halini dosyama uyarlamaya çalıştım. Çalışıyor ama tam istediğim gibi değil. iki sorum var

1- Veri sayfasının F sütünundaki her hücreye, hep aynı değer yapışıyor. Halbuki with döngüsü ile Sheets("VERI").Range("N4") her satırda değişmeli diye biliyorum. Yani N4-N5-N6-N7 olarak kaçıncı formülü çalışmalı

2- Kaçıncı formülünün içine tek koşul değil, ikinci koşulu eklemeye çalıştığımda type mismatch hatası alıyorum. Koşullar arasına & ekledim sadece
.Formula = WorksheetFunction.Match(Sheets("VERI").Range("L4") & Sheets("VERI").Range("N4"), Sheets("AYARLAR").Range("G4:G2177") & Sheets("AYARLAR").Range("H4:H2177"), 0): .Value = .Value

Kod:
Sub Kod_Ekip()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
VERIson = Sheets("VERI").Range("H65536").End(3).Row
VERIbas = Sheets("VERI").Range("F65536").End(3).Row

With Sheets("VERI").Range("F" & VERIbas + 1 & ":F" & VERIson)
.Formula = WorksheetFunction.Index(Sheets("AYARLAR").Range("G4:G2177"), WorksheetFunction.Match(Sheets("VERI").Range("N4"), Sheets("AYARLAR").Range("H4:H2177"), 0)): .Value = .Value
End With
Application.ScreenUpdating = True
End Sub
 

Ekli dosyalar

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Deneyiniz...
Kod:
.Formula = "=INDEX(AYARLAR!$G$4:$G$2177,MATCH(N" & VERIbas + 1 & ",AYARLAR!$H$4:$H$2177,0))": .Value = .Value
 
Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Altın Üyelik Bitiş Tarihi
30-01-2024
Ömer bey paylaştığınız kod ilk problemimi çözdü
İkinci problem için match koduna ikinci koşulu eklemem lazım. Aşağı paylaştığın kodda değişiklik yaptım, fakat olmadı
Kod:
.Formula = "=INDEX(AYARLAR!$G$4:$G$2177,MATCH(N" & VERIbas + 1 & " & L" & VERIbas + 1 & ",AYARLAR!$H$4:$H$2177 & AYARLAR!$G$4:$G$2177,0))": .Value = .Value
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Emin olmamakla birlikte Kaçıncı formülünün o şekilde çalışması için dizi formülü olarak girilmesi gerektiğini sanıyorum.
.Formula yerine .FormulaArray deneyiniz.
Formülünüzü deneme imkanım olmadı, ezbere yazıyorum ama formül kurgusu doğruysa istediğiniz sonucu vereceğini düşünüyorum.
 
Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Altın Üyelik Bitiş Tarihi
30-01-2024
Denedim ama F sütununun tüm hücrelerinde aynı veri oluştu. Acelesi yok, müsait olduğunuzda bakarsınız
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Tekrar merhaba,
Deneyiniz.
Kod:
.FormulaArray = "=INDEX(AYARLAR!$G$4:$G$2177,MATCH(N" & VERIbas + 1 & ":N" & VERIson & "&L" & VERIbas + 1 & ":L" & VERIson & ",AYARLAR!$H$4:$H$2177 & AYARLAR!$G$4:$G$2177,0))": .Value = .Value
 
Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Altın Üyelik Bitiş Tarihi
30-01-2024
Elinize sağlık, süper çalışıyor
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Rica ederim,
İyi çalışmalar...
 
Üst