• DİKKAT

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

Tarih yazarken sadece gün girildiğine ay ve yıl otomatik tamamlansın

Katılım
3 Temmuz 2009
Mesajlar
81
Excel Vers. ve Dili
2010 pro plus türkçe
Tarih yazarken sadece gün girildiğine ay ve yıl otomatik tamamlansın. Bugün 12.05.2019. Sadece "12" yazıp, enter tıklayınca tarihi 12.05.2019 şeklinde otomatik tamamlasın.
 
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyayayıp kendinize göre uyarlayınız.
A sütununda yazılan değere göre tarihi belirler.

Not : Gün kontrolü yapılmamıştır.
Denemelerimde günü yazdığımda tarihe çeviriyor ama bir sonraki hücreyi de tekrar tarih biçiminde aldığı için kontroller çalışmıyor.
Bence en iyisi gün ve ayı yazmak daha sağlıklı olacaktır.

Sütun tarih olarak biçimlendirildiğinde sadece 2/5 ya da 2-5 yazmanız halinde tarihe otomatik dönüştürülecektir. 02.05.2019 gibi.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    If IsNumeric(Target.Value) Then
        Application.EnableEvents = False
        Target.Value = DateSerial(Year(Date), Month(Date), Target.Value)
        Application.EnableEvents = True
    End If
       
End Sub
 
Son düzenleme:
Merhaba Necdet Bey,
Kodunuzu If IsNumeric(Target.Text) Then şeklinde değiştirince bahsettiğiniz hatayı vermedi.
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    If IsNumeric(Target.Text) Then
        Application.EnableEvents = False
        Target.Text = DateSerial(Year(Date), Month(Date), Target.Value)
        Application.EnableEvents = True
    End If
      
End Sub
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    If IsNumeric(Target.Text) Then
        Application.EnableEvents = False
        Target.Text = DateSerial(Year(Date), Month(Date), Target.Value)
        Application.EnableEvents = True
    End If
     
End Sub

Target.Text'i Target.Value olarak değiştirin yazın.
 
İyi akşamlar. Makroyu ilgili sayfanın kod bölümüne yapıştırdım. 3-4 satır doğru yazıyor daha sonra tarihi 01.12.1900 şeklinde yazıyor. Sorun ne olabilir acaba?
 
Merhaba,
Tek tek inceledim, Evet sizin dediğiniz gibi 3 satırda doğru çalışıyor, 4. satırda excel girilen değerlerin tarih olduğunu anlayarak doğrudan hücre tarihmiş gibi örneğin 5 yazdığınızda 05.01.1900 e çeviriyor.

Buradan çıkardığım sonuç, tarihi tarih gibi girmek.
en azından gün ve ayı girmek gerek.
 
Merhaba,
biraz takla attım, sanırım çalışıyor.
Deneyenlerin sonucunu merak ediyorum.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    
    If IsDate(Target.Value) = True Then
        Target.Value = DateSerial(Year(Date), Month(Date), Day(Target.Value) + 1)
    ElseIf IsNumeric(Target.Value) Then
        Target.Value = DateSerial(Year(Date), Month(Date), Target.Value)
    End If
    Application.EnableEvents = True
      
End Sub
 
@Erkan Akayay,

Soru 2019 yılında ilk sorulduğunda sadece gün girilerek ay ve yılın otomatik tamamlanması istenmiş. Başka detay verilmemiş. Bu durumda ben ay ve yılı aktif dönem diye yorumladım.
 
@Erkan Akayay,

Soru 2019 yılında ilk sorulduğunda sadece gün girilerek ay ve yılın otomatik tamamlanması istenmiş. Başka detay verilmemiş. Bu durumda ben ay ve yılı aktif dönem diye yorumladım.
Korhan Bey zaten konuyu canlandırana sordum.
Eski tarih girmeyi engelleyen bir talep.
Alanlar doğru belirlenemezse sayı bile girilemeyecek.
Çözümü var ama sonucu sıkıntı.
 
Sayın @Korhan Ayhan hocam eklemiş olduğunuz ek dosyayı inceledim gayet başarılı. Ayrıca Sayın @Necdet hocam sizim yazmış olduğunuz kodu da denedim gayet başarılı. Sayın hocalarım ve arkadaşlar emekleriniz için teşekkür ederim. Benim için ihtiyaca cevap vermiştir.
 
Geri
Üst