Formüle bağlı hücre değiştiğinde tarih yazması

Katılım
7 Mayıs 2009
Mesajlar
22
Excel Vers. ve Dili
Office 2010
Webden veri çektiğim bir excel sayfam var. Burada dakika başı verileri güncelliyor. H:H sutununda değişiklik olduyğunda yanına tarih yazmasını istiyorum. Fakat H:H sutunundaki değerler formul ile alıyor. Aşağıdaki kod veriler yenilendiğinde çalışmıyor. Örneğin H5 hücresini elle değiştirdiğimde kod çalışıyor. Bunu nasıl çözebilirim yardım edebilir misiniz ?

Kod:
Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [H:H]) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1) = Now
Application.EnableEvents = True
End Sub
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Başlık satırı yerine;

Kod:
Private Sub Worksheet_Calculate()
yazarak deneyin.

.
 
Katılım
7 Mayıs 2009
Mesajlar
22
Excel Vers. ve Dili
Office 2010
Kod:
Private Sub Worksheet_Calculate()
If Intersect(target, [D:D]) Is Nothing Then Exit Sub
Application.EnableEvents = False
target.Offset(0, 1) = Now
Application.EnableEvents = True
End Sub
olarak denediğimde Runtime error '424' hatası veriyor
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Küçük bir örnek ile detaylı açıklarsanız daha net yanıtlar alabilirsiniz.

İstediğiniz bu mu?

Kod:
Private Sub Worksheet_Calculate()

    Application.EnableEvents = False
    Range("D:D").SpecialCells(xlCellTypeFormulas, 23).Offset(0, 1) = Now
    Application.EnableEvents = True
    
End Sub
.
 
Katılım
7 Mayıs 2009
Mesajlar
22
Excel Vers. ve Dili
Office 2010
Dosyayı paylaşırsam sanırım daha kolay olur. İstediğim D2 ve D26 hücre aralığındaki değerler değiştiği anda yanındaki hücreye o anki tarih saati yazmasını istiyorum.
Ek dosya
 
Katılım
7 Mayıs 2009
Mesajlar
22
Excel Vers. ve Dili
Office 2010
Küçük bir örnek ile detaylı açıklarsanız daha net yanıtlar alabilirsiniz.

İstediğiniz bu mu?

Kod:
Private Sub Worksheet_Calculate()

    Application.EnableEvents = False
    Range("D:D").SpecialCells(xlCellTypeFormulas, 23).Offset(0, 1) = Now
    Application.EnableEvents = True
    
End Sub
.
Bu kod ile D:D sutunundaki tüm değerlerin yanına tarih saat ekliyor. Ama ben sadece değişen değerin yanındaki hücreye tarih saat yazdırmak istiyorum.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Module kopyalayın. Bir kere çalıştırın. Daha sonra dosya açılışında çalışacaktır. IV sütunu yardımcı sütun olarak belirlendi. Siz değiştirebilirsiniz.

Kod:
Sub Auto_Open()

    [D:D].Copy
    [IV1].PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Application.CutCopyMode = False
    
    [D1].Select
    
End Sub
Sayfanın kod bölümüne kopyalayın.

Kod:
Private Sub Worksheet_Calculate()
    
    Application.ScreenUpdating = False
    Dim i As Long
    
    For i = 1 To Cells(Rows.Count, "D").End(xlUp).Row
        If Cells(i, "D") <> Cells(i, "IV") Then
            Cells(i, "E") = Now
        End If
    Next i
    
    [D:D].Copy
    [IV1].PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    Application.CutCopyMode = False
    
    [D1].Select
    
    Application.ScreenUpdating = True
    
End Sub
.
 
Katılım
7 Mayıs 2009
Mesajlar
22
Excel Vers. ve Dili
Office 2010
Ömer Bey çok teşekkür ederim elinize sağlık. Tam istediğim gibi oldu şuanda teşekkür ederim.
 
Üst