Hücre Tarih Formatı

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
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?
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
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.
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Teşekkür ederim Yusuf Abi
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
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
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Seyit abi kod için teşekkür ederim.
sadece 01012011 gibi olursa kod işlem yapmıyor
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
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.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
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

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Seyit Hocam çok çok teşekkür ederim. Paylaşım için de sağ ol.
 

Ö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,

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
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Ö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.
 
Üst