Merhaba Hocalarım,
ekli örnekte yapmak istediğim A sütununa veri girilince D sütununda kontrol edecek yoksa ekleyecek.
Saygılarımla,
Ahmet Yenginoğlu
Dim StrInputValue As String, Rng As Range, LastRow As Long
If Not Intersect(Target, Me.Columns("A")) Is Nothing Then 'Sadece A sütunundaki hücreler için işlem yap
StrInputValue = Target.Value 'Değiştirilen hücre değerini al
If StrInputValue <> "" Then 'Eğer hücrede veri yoksa işlem yapma
Set Rng = Me.Range("A:A").Find(What:=StrInputValue, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False) 'A sütununda bu değeri bul
If Rng Is Nothing Or Rng.Address = Target.Address Then 'Eğer veri A sütununda yoksa veya sadece girilen hücrede varsa
LastRow = Me.Cells(Me.Rows.Count, "D").End(xlUp).Row 'D sütunundaki son dolu hücreyi bul
If LastRow < 4 Then LastRow = 4 'D4'ten önceki boş hücreleri ihmal et
Me.Cells(LastRow + 1, "D").Value = StrInputValue 'Değeri D4'ten sonra sütunda ilk boş hücreye ekle
End If
End If
End If
şeklinde gireceğiniz kod, A sütununda girilen hücre boş ise veya girilen değer mükerrer kayıt ise ve dolayısı ile D sütununda da olacağından işlem yapmadan devam edip, şayet A sütununda girilen yeni veri ise D'de olup olmadığını kontrol edecek ve yoksa D4'ten sonraki ilk boş hücreye ekleyecektir.