• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

tarih ve saat atama ???

Katılım
15 Eylül 2012
Mesajlar
72
Excel Vers. ve Dili
2010 türkçe
iyi günler üstatlar.
benim exel dosyamda,
A25 satırına her hangi bir yazı yazdığımda, M25 hücresine o yazının yazıldığı tarih ve saati otomatik yazacak.
dosyamı daha sonra ki bir zamanda tekrar açtığımda orada yazan tarih ve saat değişmeyecek. taki ben yeniden A25 hücresinde bir değişiklik yaparsam eğer.
ben bunu
M25 hücresinin içine { =EĞER(A25="";"";BUGÜN()) } kodu ile yapıyorum ama böyle yaptığımda başka bir hücrede değişiklik olduğu zaman da M25 hücremdeki tarih ve saatim değişiyor.
bana nasıl yardımcı olabilirsiniz acaba ???
 
Merhaba bu istediğiniz sadece makro ile yapılabilir bildiğim kadarıyla örnek kod aşağıdadır.Kodu sayfanın kod bölümüne yapıştırmanız gerekmektedir.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$25" Then
        If Target.Value <> "" Then
            Range("M25").Value = Now
        Else
            Range("M25").Value = ""
        End If
    End If
End Sub
 
Alternatif olsun Sayfanın kod bölümüne aşağıdaki kodu uygulayıp deneyiniz.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo son
If Intersect(Target, [a25]) Is Nothing Then Exit Sub
Cells(Target.Row, "m") = Now
son:
End Sub
 
EmrExcel16 ve yanginci34
teşekkür ederim ikinize de üstatlar. ikisi de istediğim gibi olmuş çok sağolun.
peki bir şey sorsam,
biz A25 M25 'e yaptık ama aynı kodları aşağıdaki hücrelere de yapmak istiyorum.
yani
A25 M25 'e
A26 M26 'ya
A27 M27 'ye
P25 AB25 'e
P26 AB26 'ya
P27 AB27 'ye
kadar,
olacak şekilde tek bir kod ile nasıl toparlayabilirim.
 
Deneyiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
     If Not Intersect(Target, Range("25:27"), Range("A:A,P:P")) Is Nothing Then
    Application.Calculation = xlCalculationManual
        If Target.Value = "" Then
            Target.Offset(0, 12).Value = ""
            Else
                Target.Offset(0, 12).Value = Format(Now, "dd.mm.yyyy hh:mm:ss")
            End If
        End If
    Application.Calculation = xlCalculationAutomatic
End Sub
 
Merhaba @çıtır 'ın kodları çalışıyor,alternatif olsun diye aşağıdaki kodları ekliyorum.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [A25:A27,P25:P27]) Is Nothing Then Exit Sub
If Target.Column = 1 Then
    If Target.Value <> "" Then
        Cells(Target.Row, "M") = Now
    Else
        Cells(Target.Row, "M") = ""
    End If
Else
    If Target.Value <> "" Then
        Cells(Target.Row, "AB") = Now
    Else
        Cells(Target.Row, "AB") = ""
    End If
End If
End Sub
 
çıtır
teşekkürler üstat uygulama hatası yapmışım sanırım ben şimdi tekrar denedim oldu :)
emeği geçen herkese çok teşekkür ederim....
 
Deneyiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
     If Not Intersect(Target, Range("25:27"), Range("A:A,P:P")) Is Nothing Then
    Application.Calculation = xlCalculationManual
        If Target.Value = "" Then
            Target.Offset(0, 12).Value = ""
            Else
                Target.Offset(0, 12).Value = Format(Now, "dd.mm.yyyy hh:mm:ss")
            End If
        End If
    Application.Calculation = xlCalculationAutomatic
End Sub

@çıtır üstadım merhabalar, kolay gelsin.
Zamanında bu kod ile yapmaya çalıştığım makroda bana baya yardımcı olmuştunuz. şimdi sizden bir şey daha rica edebilir miyim? yine bu kodları kullanacağım ama

örnek;
Private Sub Worksheet_Change(ByVal Target As Range)
'_____________hücreye yazı yazınca otomatik tarih ve saat atama____________________
If Target.Count > 1 Then GoTo 30
If Not Intersect(Target, Range("6:6"), Range("J:J,K:K")) Is Nothing Then
Application.Calculation = xlCalculationManual
If Target.Value = "" Then
Target.Offset(1, 0).Value = ""
Else
Target.Offset(1, 0).Value = Format(Now, " _ dd.mm.yyyy _ hh:mm:ss _ ")
End If
End If
Application.Calculation = xlCalculationAutomatic
30:
'_____________hücreye yazı yazınca otomatik tarih ve saat atama____________________
End Sub


bu kodlar ile:
J6 satırına yazı yazınca otomatik o anki tarih ve saati J7 satırına atıyor.
ben bunu sadece J6 ve K6 satırlarına yazınca hemen bir alt satıra atıyor şekilde yapıyorum.


benim istediğim ise şöyle,
ben for döngüsü ile
J8 e yazınca da J9 a tarihi atsın sonra
J10 a yazınca J11 ede tarihi atasın

yani ikişer ikişer atlayarak nasıl bir döngü oluştura biliriz. (bir satıra yazı bir satıra tarihi otomatik atama)

bu konuda bana yardımcı olabilmeniz mümkün müdür acaba :)
 
Aşağıdaki kodu deneyiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
     If Not Intersect(Target, Range("6:100"), Range("J:J,K:K")) Is Nothing Then
    If Target.Row Mod 2 <> 0 Then Exit Sub
    Application.Calculation = xlCalculationManual
        If Target.Value = "" Then
            Target.Offset(1, 0).Value = ""
            Else
                Target.Offset(1, 0).Value = Format(Now, "dd.mm.yyyy hh:mm:ss")
            End If
        End If
    Application.Calculation = xlCalculationAutomatic
End Sub
 
Geri
Üst