Değişiklik Yapılan Satırdaki Sicil Log Tutma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Katılım
13 May 2019
Mesajlar
303
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Kod:
Dim eski_deger$
Private Sub Worksheet_Change(ByVal Target As Range)
        Set sayfa = ThisWorkbook.Sheets("log")
        With sayfa
            satir = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            .Cells(satir, 1) = Format(Now, "dd.mm.yyyy")
            .Cells(satir, 2) = Format(Now, "hh:mm")
            .Cells(satir, 3) = ActiveSheet.Name
            .Hyperlinks.Add .Cells(satir, 3), "", "=" & .Cells(satir, 3) & "!" & Target.Address(0, 0)
            .Cells(satir, 4) = Target.Address(0, 0)
            .Hyperlinks.Add .Cells(satir, 4), "", "=" & .Cells(satir, 3) & "!" & .Cells(satir, 4)
            .Cells(satir, 5) = eski_deger
            .Cells(satir, 6) = Target.Text
            .Cells(satir, 7) = Environ("UserName")
        End With

End Sub
Hücrelerdeki yapılan değişiklikleri log sayfasında hücre değişikliğini adres olarak takip edebiliyoruz. Burda bir sıkıntı yok.

Ancak ben aynı zamanda Sayfa1 den A sutununda bulunan değişiklik yapılan satırdaki sicili de Log sayfasında A sutununa yazdırmak istiyorum.
Kod:
Dim eski_deger$
Private Sub Worksheet_Change(ByVal Target As Range)
        Set sayfa = ThisWorkbook.Sheets("log")
        With sayfa
            satir = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            .Cells(satir, 1) = "BURAYA SAYFA1 İN A SUTUNDAKİ BİLGİ GELECEK"
            .Cells(satir, 2) = Format(Now, "dd.mm.yyyy")
            .Cells(satir, 3) = Format(Now, "hh:mm")
            .Cells(satir, 4) = ActiveSheet.Name
            .Hyperlinks.Add .Cells(satir, 4), "", "=" & .Cells(satir, 4) & "!" & Target.Address(0, 0)
            .Cells(satir, 5) = Target.Address(0, 0)
            .Hyperlinks.Add .Cells(satir, 5), "", "=" & .Cells(satir, 5) & "!" & .Cells(satir, 5)
            .Cells(satir, 6) = eski_deger
            .Cells(satir, 7) = Target.Text
            '.Cells(satir, 7) = Environ("UserName")
        End With

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
eski_deger = Target
End Sub
Bunun için kodda nasıl bir değişiklik yapmalıyız. Teşerkürler.
 

Ekli dosyalar

Sn. metehan8001; bu işlemi saadece E sutunu için sabitleyebilirmiyiz, E sutununda değişiklik yapılırsa log tutsun, diğer susunlarda tutmasın.

Yada sorumu şöyle sorayım, istediğimiz sutunları biz belirleyebilirmiyiz. 3-4 sutun için gerekebilir. Teşekkürler
 
Private Sub Worksheet_Change(ByVal Target As Range) bu kod satırının altına aşağıdaki kodu ekleyin.

VBA:
if target.column <> 5 then exit sub
 
Çözüm
Sn.metehan8001, çok teşekkür ediyorum, soruya ilaveten ekleme yapmıştım, birden fazla sutun için olmuş olsaydı ki öylede olacak bu durumda nasıl bir kod ilave etmeliyiz. Biliyorum sizi yordum, cevap yazmasanız da kızmam :)
 
Biraz araştırdım şöyle bir şey buldum denedim oldu:
If Intersect(Target, [E:E,C:C]) Is Nothing Then Exit Sub
Çok teşekkür ederim metehan8001 kardeşim sağolasın.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst Alt