arkadaşlar merhaba bir konuda yardıma ihtiyaç duymaktayım. excelde yazdığım iki aşamalı bir kod bulunmaktadır.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bul As Range
Dim VeriSayfasi As Worksheet
' Birden fazla hücre aynı anda değiştirildiyse kodun hata vermesini önler
If Target.Cells.Count > 1 Then Exit Sub
' -------------------------------------------------------------
' 1. BÖLÜM: A SÜTUNUNA VERİ GİRİLDİĞİNDE SAYFA2'DEN VERİ GETİRME
' -------------------------------------------------------------
If Not Intersect(Target, Me.Range("B2:B1000")) Is Nothing Then
If Target.Value <> "" Then
' Değerlerin aranacağı sayfayı belirtin
Set VeriSayfasi = ThisWorkbook.Sheets("Sayfa2")
' İsmi Sayfa2'nin A sütununda ara
Set Bul = VeriSayfasi.Columns("A").Find(Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not Bul Is Nothing Then
Application.EnableEvents = False
' Hücredeki ismi silip yerine B sütunundaki değeri yazar
Target.Value = Bul.Offset(0, 1).Value
Application.EnableEvents = True
End If
End If
End If
' -------------------------------------------------------------
' 2. BÖLÜM: B SÜTUNUNA VERİ GİRİLDİĞİNDE A SÜTUNUNA ZAMAN DAMGASI
' -------------------------------------------------------------
' Eğer değişiklik B sütununda (B2:B1000 aralığında) yapıldıysa
If Not Intersect(Target, Me.Range("B2:B1000")) Is Nothing Then
If Target.Value <> "" Then
Application.EnableEvents = False
' Solundaki hücreye (A sütunu) tarihi ve saati sabit olarak yaz
Target.Offset(0, -1).Value = Now
' A sütunundaki hücrenin biçimini Gün.Ay.Yıl Saat:Dakika yap
Target.Offset(0, -1).NumberFormat = "dd.mm.yyyy hh:mm"
Application.EnableEvents = True
End If
End If
End Sub
bu kodu pardus tabanlı librede açınca kodun ikinci kısmı olan tarih kısmında
hatayı veriyor ve kod bir daha kullanılamaz hale geliyor. bu sorunu nasıl çözebilirim. yardım ederseniz sevinirim. iyi günler iyi çalışmalar
