• DİKKAT

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

Tarihte minik bi sorun..!

Katılım
31 Ocak 2013
Mesajlar
55
Excel Vers. ve Dili
2010 Türkçe
Merhaba,
Aşağıdaki kod B3:B aralığına veri girildiğinde yan sütundaki A3:A aralığında ki hücrelere o anki tarihi yazıyor. Buraya kadar çok güzel çalışıyor. B3:B aralığında ki veriye delete yaptığımda ise A3:A hücresinde tarih kalıcı oluyor. Delete yapıldığında da tarihin silinmesini sağlaya bilir miyiz?
Syg,




Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo son
If Intersect(Target, [B3:B65536]) Is Nothing Then Exit Sub
Target.Offset(0, -1).Value = Now
son:
End Sub
 
Böyle deneyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [B3:B65536]) Is Nothing Then Exit Sub
    If Target = "" Then
    Target.Offset(0, -1) = ""
    Else
    Target.Offset(0, -1).Value = Now
    End If
End Sub
 
Merhaba, Hamit Bey,
Verdiğim kodda minik bildiğim, fakat çok fazlasıyla sorun olduğunu yeni fark ettim. O bakımdan düzenlemek yerine bahsedeceğim kriter de kod olursa sevinirim.
B3:B aralığına veri girildiğinde yan hücresinde o anki tarih yazmalı, silindiğinde ise o tarih geri silinmeli.
B3:B Aralığına 1den fazla veri yapıştırıldığında da tarihin çalışması gerekiyor. Veri çoklu bir biçimde silindiğinde de yine tarih silinmeli.
Teşekkür ederim.
 
Bu şekilde dener misiniz ?

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [B3:B65536]) Is Nothing Then Exit Sub
       Target.Offset(0, -1).Value = Now
       If WorksheetFunction.CountA(Target) = 0 Then Target.Offset(0, -1).Clear
End Sub
 
İyi akşamlar, Hamit Bey,
Son yazdığınız kodu da denedim, bunda da farklı sorunla çıktı, şaşırdım kaldım. Bu kodları düzenlemek yerine yeniden bir kod yazılabilir mi. En azından eskiyi onarmaktan yenisini yapmak daha kolay olabilir. Daha anlaşılır olması için örnek dosya ekledim.

İlginiz için çok teşekkür ediyorum.
Syg.
 

Ekli dosyalar

Merhaba,
Hamit Bey, İyi geceler.
Formda biraz araştırma yaptım, sizin de yazdığınız kodlardan küçük eklentiler aldım. Tarihle ilgili güzel bir kod hazırladım. Teker teker girişlerde ve silindiğinde kodun çalışmasında sıkıntı yok. Ancak çoklu veri girişinde ve silinmesinde çalışmıyor. Diğer kod gibi saçma sapan şeyler çıkarmıyor en azından. Bu koda bu özelliği kazandıra bilir miyiz?
Örnek dosyayı incelediğinizde, idaha net anlaşılabileceğini umuyorum.





Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Son
If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
If Target.Row < 3 Then Exit Sub
If Target <> "" Then Target.Offset(0, -1) = Date
If WorksheetFunction.CountA(Target) = 0 Then Target.Offset(0, -1).Clear
Son:
End Sub
 

Ekli dosyalar

Böyle deneyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
    If Target.Row < 3 Then Exit Sub
     [color=red]Target.Offset(0, -1).Value = Now[/color]
    If WorksheetFunction.CountA(Target) = 0 Then Target.Offset(0, -1).Clear
Son:
End Sub
 
Merhaba,
Hamit Bey, veri yapıştır yaptığımda yapıştırılan veri de tarihe dönüşüyor. Tek tek veri girildiğinde ise J sütunda da tarih oluyor. Sinir bozucu şeyler yapıyor. Yukarıda verdiğim kodda sadece çoklu girişte çalışmıyor. Örnek dosyayı incelediniz mi. Açıklamalarda bulunmuştum.
 
Verdiğim kodu yeni bir dosyada deneyin.
 
Merhaba Hamit Bey,
Yeni dosyada denedim. Farklı biçimde yapıştırma seçeneğini denedim, bildiğim her yolu denedim deniyorum, ne yaptımsa olmuyor. Kod benim dediğim de benim dediğim diyor, bildiğini yapıyor. Bu durum veri kayıt tarihleri olacağından çok önemli. Sağlık çalışması gerekiyor. Formüllerle var ama her yeni günde yeni tarih veriyor. Oda işime yaramıyor. Başka ne yapılmasını önerirsiniz.
 
Merhaba Hamit Bey,
Örnek dosyayı inceledim. Butonu tıkladığımda yapıyor. Normalde de yapıyordu. Ama ilk açıklamada bulunduğum veriyi manuel yapıştırdığımda sorun veriyor. B3:E7aralığına yapıştırıldığında ciddi sorunlar veriyor. Biçimlendir menüsünden genel seçiyorum bu defa da tarihi rakama çeviriyor. Birkaç mesajdan beri kast ettiğim hata buydu. Umarım bununda bir çözümü vardır.
 
Açıkcası sorunun tam olarak ne olduğunu anlayamadım bu yüzden diğer arkadaşlardan destek almayı deneyin.
 
Merhaba,
Hamit Bey, örnek dosya yı incelediğinizde sorunun ne olduğunu tam olarak anlayabileceğinizi umuyorum. Lütfen yeniden kontrol edebilirmisiniz.

Örnek dosya ektedir.
 

Ekli dosyalar

Bu şekilde dener misiniz ?
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
    If Target.Row < 3 Then Exit Sub
    If WorksheetFunction.CountA(Target) = 0 Then
        Target.Offset(0, -1).Clear
    Else
        Range("a3:a" & [b65536].End(3).Row) = Now
    End If
Son:
End Sub
 
Geri
Üst