Makro ile Düşey ara

Katılım
6 Eylül 2007
Mesajlar
655
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
745
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:
Katılım
6 Eylül 2007
Mesajlar
655
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
745
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.
 
Katılım
6 Eylül 2007
Mesajlar
655
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,418
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
296
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
15-12-2026
@Muzaffer Ali hocam .SpecialCells(xlCellTypeFormulas, 16) 16 ifadesine anlama geliyor
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,418
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
296
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
15-12-2026
Teşekkürler
 
Üst