• DİKKAT

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

Hücre Tarih Formatı

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,543
Excel Vers. ve Dili
2021 LTSC TR
es selamün aleyküm

Hücre biçimlendir >> İsteğe uyarlanmış kısmında "##\.##\.#### " formatını kullandığım zaman görünüm 22.05.2021 oluyor ama hücre 22052021 olarak kalıyor.
Rica etsem vba makro ile 22052021 gibi bir tarih girdiğim zaman 22.05.2021 şeklini almasını nasıl sağlayabilirim?
 
Bu türden birçok konu var forumda. Dahil olduğum tüm konularda belirttiğim gibi eğer hücreye tarih atmak istiyorsanız böyle fantazilerle uğraşmak yerine hücreyi tarih olarak biçimlendirin ve örneğin 22/05/2021 için hücreye sadece 22/5 yazın. Bundan daha hızlı bir tarih giriş yöntemi yoktur. Farklı yıl için ise sonuna yılın son iki hanesini ekleyin, 22/5/20 gibi. Sunulan çözümlerin çoğu sizin de far ettiğiniz gibi veriyi değil sadece görünümünü değiştirmektedir. Ayrıca belirtilen yöntemler tarih olmayan verilerde hatalı sonuçlar verebilir. Örneğin 31/04/2021 gibi olmayan bir tarihe dönüştürmeye çalışabilirsiniz.
 
Bu şekilde bir deneyiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim blg As Range
If Target.Count > 1 Then Exit Sub
Set blg = Range("A:A")
If Intersect(Target, blg) Is Nothing Then Exit Sub
If Len(Target) = 8 Then
If InStr(Target, ".") = 0 Then Target = Left(Target, 2) & "." & Mid(Target, 3, 2) & "." & Right(Target, 4)
End If
End Sub
 
Seyit abi kod için teşekkür ederim.
sadece 01012011 gibi olursa kod işlem yapmıyor
 
Son düzenleme:
Hücreyi metin olarak biçimlendirirseniz kod istediğiniz dönüşümü yapıyor ama bu sefer de hücre metin olduğundan tarih olarak işlem görmüyor. Ayrıca hücreye sayı dışında veri girildiğinde de istenen biçime döndürüyor. örneğin aaaaaaaa yazdığınızda aa.aa.aaaa yapıyor.

İlk mesajımda anlatmaya çalıştığım gibi hücreye tarih girmek istiyorsanız tarih girin, başka yöntemler bir çok hataya yol açar ve istediğiniz gibi verim alamazsınız.
 
Hücreyi METİN olarak ayarlarsanız olur, bu şekilde bir sıkıntı çıkmıyacaksa. Sitede UserForm ile yapılmış bir sürü Takvim var > artı, Eklentiler var > bunları araştırmanızı öneriyoruz, tarih yazmak için 8 sefer tuşa basmak bir excelci için pek zekice olmaz.
 

Ekli dosyalar

Seyit Hocam çok çok teşekkür ederim. Paylaşım için de sağ ol.
 
Merhaba,

Benimde tavsiye etmediğim veri girişi türü. Zorunluğunuzu bilmemem tabi.
Alternatif olsun.
Dikkat edilmesi gereken en önemli konu; günü tek hane girebilirsiniz fakat ay girerken iki hane girmeniz gerekir.
Örneğin; 01.04.2021 için 104 girebilirsiniz. Dikkat etmeniz gereken ay girişleri 2 hane olacak.

Örnek başka girişler.
8092021 girerek 08.09.2021
111198 girerek 11.11.1998
50621 girerek 05.06.2021 değerlerini elde edebilirsiniz.

Değer mi siz karar verin.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim bicim
    If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
    With Target
        .NumberFormat = "General"
        bicim = "00-00-0000"
        If Len(.Value) < 5 Then bicim = "00-00"
        If Len(.Value) < 7 And Len(.Value) > 4 Then bicim = "00-00-00"
        If IsDate(Format(.Value, bicim)) = True Then
            Application.EnableEvents = False
            .Value = CDate(Format(.Value, bicim))
            Application.EnableEvents = True
        End If
    End With
End Sub
 
Ömer abi
Yusuf Abim ve Seyit abim de uygun görmediler. Ancak Seyit abimin 7. mesajında ki eklentiyi uyguladım.
Sizlere zahmet verdiğim için, farklı ve uygulaması pek hoş olmayan bir talepte bulunduğum için özür dilerim.
Yardımlarınızı esirgemediğiniz için de teşekkür ederim.
 
Geri
Üst