Makro ile Düşey ara

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Merhaba üstatlar Ekli dosyada Makro ile düşey ara işlemi gerçekleştiriyorum, işlemi yapıyor ancak bir hata veriyor kodlardaki hata nedir acaba?
 

Ekli dosyalar

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
671
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
'Deneyiniz.

Kod:
Sub DüşeyAra()
'Sayfa1 F Hücresine; Sayfa1 A hücresi değerini Sayfa2 Tablo dizisinde arar ve 4. indisi yazar.

For i = 4 To 10
If IsError(Application.VLookup(Sayfa1.Cells(i, "A"), Sayfa2.Range("A2:D5"), 4, False)) Then
Sayfa1.Cells(i, "F") = "" 'Yoksa boş geçer. Yada tırnak işaretleri arasına yazılanı yazar.
Else
Sayfa1.Cells(i, "F") = Application.VLookup(Sayfa1.Cells(i, "A"), Sayfa2.Range("A2:D5"), 4, False)
End If
Next i

End Sub
 
Son düzenleme:

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Sn RBozkurt çok teşekkürler gayet iyi olmuş ancak şöyle bir durum var 4 To 10 arasında Düşeyaramanın yapıldığı tabloda ismi olmayanların karşısına "#YOK" ibaresini koyuyor. bunu engellemenin yolu varmı?
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
671
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Sn RBozkurt çok teşekkürler gayet iyi olmuş ancak şöyle bir durum var 4 To 10 arasında Düşeyaramanın yapıldığı tabloda ismi olmayanların karşısına "#YOK" ibaresini koyuyor. bunu engellemenin yolu varmı?
2 numaralı mesajdaki kodları güncelledim.
Deneyiniz.
 

cocoa35

Altın Üye
Katılım
6 Eylül 2007
Mesajlar
654
Excel Vers. ve Dili
excel 2016 32 Bit ve Excel 2020 32 Bit Türkçe ve İngilizce
Altın Üyelik Bitiş Tarihi
10-12-2024
Çok teşekkürler :)
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,160
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Alternatif kod.
Kod:
Sub Test()
    Dim Say  As Long
    Say = Cells(Rows.Count, "A").End(xlUp).Row
    With Range("F4:F" & Say)
        .Formula = "=vlookup(A4,'Sayfa2'!A:D,4,0)"
        .SpecialCells(xlCellTypeFormulas, 16) = ""
        .Value = Range("F4:F" & Say).Value
    End With
End Sub
 

arrow3441

Altın Üye
Katılım
31 Ekim 2022
Mesajlar
294
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
07-11-2024
@Muzaffer Ali hocam .SpecialCells(xlCellTypeFormulas, 16) 16 ifadesine anlama geliyor
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,160
Excel Vers. ve Dili
2019 Türkçe
Kod:
Range("F4:F" & Say)
alanında bulunan formüllerin hata sonucu (#YOK ve benzeri) döndüren hücreler.
Kod:
Range("F4:F" & Say).SpecialCells(xlCellTypeFormulas, 16) = ""
Yazınca bu aralıktaki hatalı sonuç döndüren tüm hücrelerin içeriği silinmiş olur.
 

arrow3441

Altın Üye
Katılım
31 Ekim 2022
Mesajlar
294
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
07-11-2024
Teşekkürler
 
Üst