Makro okuması.

Katılım
2 Şubat 2014
Mesajlar
745
Excel Vers. ve Dili
2007 Türkçe
Merhaba arkadaşlar. Notlarımın arasına aldığım aşağıdaki kod blogu tam olarak
ne yapıyor satır satır izahı gerekli. Bu hususta tecrübeli arkadaşlarımın
yardımını istirham ediyorum. Teşekkür ederim.



ss = Cells(Rows.Count, "NH").End(xlUp).Row

For j = 7 To ss

Set k = Range("MW:MW").Find(Cells(j, "MT").Value, , xlValues, xlWhole)
If Not k Is Nothing Then
If Cells(j, "PL").Value <> k.Offset(0, 67).Value Then
Cells(j, "MU").Value = "x"
k.Offset(0, 1).Value = "x"

End If: End If: Next j

For p = 7 To ss
If Cells(p, "MT").Value = "" Then
Cells(p, "MU").Value = ""
End If: Next p
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,519
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Elimden geldiğince açıklamaya çalıştım.

C++:
'NH sütunundaki son dolu satırr numarası bulunuyor.
ss = Cells(Rows.Count, "NH").End(xlUp).Row

'j isminde döngü başlıyor. 7. satırdan üst satırda tespit edilen son satıra kadar devam edecek şekilde kurgulanmış.
For j = 7 To ss

'MT sütunundaki döngüdeki satıra denk gelen veri MW sütununda birebir hücre bazında aranıyor.
Set k = Range("MW:MW").Find(Cells(j, "MT").Value, , xlValues, xlWhole)

'Eğer aranan veri varsa
If Not k Is Nothing Then

'Eğer döngüdeye denk gelen PL sütunundaki veri bulunan verinin 67 sütun sağındaki veri ile aynı değilse
If Cells(j, "PL").Value <> k.Offset(0, 67).Value Then

'Döngüde denk gelen MU sütunundaki satıra "x" yaz.
Cells(j, "MU").Value = "x"

'Bulunan verinin 1 sağındaki hücreyede "x" yaz.
k.Offset(0, 1).Value = "x"

'Eğer sorgularını kapat ve döngüye devam et.
End If: End If: Next j

'p adında bir döngü başlıyor. j döngüsündeki aralığı baz alıyor.
For p = 7 To ss

'Eğer dögüye denk gelen MT sütunundaki satır boşsa
If Cells(p, "MT").Value = "" Then

'Döngüye denke gelen MU sütunundaki satırın içeriğini temizle
Cells(p, "MU").Value = ""

'Eğer sorgularını kapat ve döngüye devam et.
End If: Next p
 
Katılım
2 Şubat 2014
Mesajlar
745
Excel Vers. ve Dili
2007 Türkçe
Alakanız için çok teşekkür ederim Korhan Hocam.
If Cells(j, "PL").Value <> k.Offset(0, 67).Value Then

Bu satırda k.Offset(0, 67).Value
değerini ol görüp anlayamadım. Tam olarak
hangi sütuna tekamül ediyor acaba
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,519
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
O bölümle ilgili açıklamada küçük bir hata yapmışım. Düzelttim.

MW sütunundan sonra 67 sütun sayarak bulabilirsiniz.
 
Katılım
2 Şubat 2014
Mesajlar
745
Excel Vers. ve Dili
2007 Türkçe
Tekrardan teşekkür ederim.
Eksik olmayın sayın Korhan Hocam.
 
Üst