Noktasız Tarih Girişini Hücrede Tarih Biçimine Dönüştürme

  • Konuyu başlatan Konuyu başlatan ssavas
  • Başlangıç tarihi Başlangıç tarihi

ssavas

Kullanıcı
Katkı: %1
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba arkadaşlar kullandığım bir çalışmada B ve C sütunlarına tarih girişi yapıyorum. Normalde tarihi 01.01.2021 şeklinde giriyorum. Ben istiyorum ki tarihi 01012021 şeklinde girersem veri otomatik olarak tarih formatına çevrilsin.
textbox formatında normalde şu kod ile gerekli formatı sağlıyorum ancak Excel sayfasına uyarlayamadım.
Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (3 satır). Giriş Yap
Ekran Alıntısı.webp
 
Merhaba Sayın @s.savas .

Veri girişi excel sayfasına elle yapılıyorsa TİRE/NOKTA/KESME işaretlerinden birini ayraç olarak kullanmanızı öneririm.
Veri girişi bir userform üzerinden yapılıyorsa, istediğiniz şeyin yapılması daha kolay.

Malum bizim tarih dediğimiz şey; esas olarak SAYIdır, sadece BİÇİM (görünüm) olarak TARİH şeklinde ayarlanır. Excel açısından 01.01.1900 tarihi 1 değerine karşılık gelir (ayraç kullanarak daha eski bir tarih yazarsanız excel bunu tarih ya da sayı olarak görmez METİN olarak algılar,
Hücreye AYRAÇ kullanarak bugünün tarihini 05.02.2021 diye yazdığınızda excel bunun TARİH olduğunu varsayar ve
o şekilde görünmesini sağlar. Aynı hücreyi SAYI olarak biçimlendirirseniz göreceğiniz şey 44232 sayısıdır ve bu sayı
01.01.1900 tarihinden itibaren KAÇINCI GÜN olduğunu gösterir.
Bir de Excel'de tarih verisinin bir üst sınırı var, örneğin benim kullandığım Excel versiyonunda en fazla 31.12.9999 tarihi yazılabiliyor ve bnun SAYIsal karşılığı da 2958465 sayısı. Bu değerden daha büyük bir SAYI yazılıp, hücre TARİH olarak biçimlendirilirse göreceğiniz şey #################### şeklinde bir HATA değeridir.

Alanı İSTEĞE UYARLANMIŞ bölümünden ##\.##\.#### şeklinde biçimlendirerek, YARAÇ KULLANMADAN veri girişi mümkünmüş gibi görünse de (bu yöntemde veriler TARİH değil SAYIdır) bunun sakıncası, alana filtre uygulanıp, filtre OKuna tıkladığınızda veya bu verilere atıf yapan =GÜN(....) veya =AY(...) veya =YIL(...) formülleriyle bilginin gerçekte ne olduğunu anlamaya çalışırsanız göreceğiniz şey de #SAYI! şeklinde HATA olacaktır.

Bence tarih girişi hücreye yapılacaksa AYRAÇ kullanılmalıdır.
 
Merhaba, B ve C sütunlarına ayraç kullanmadan 8 haneli olarak girdiğiniz tarihi (örn. 01012021) otomatik olarak tarih biçimine çevirmek için ilgili sayfanın kod sayfasına aşağıdaki VBA kodunu ekleyebilirsiniz. Sayfa adına sağ tıklayıp Kodu Görüntüle seçtiğinizde açılan pencereye kodu yapıştırabilirsiniz.

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (26 satır). Giriş Yap

Kod nasıl çalışır?
  1. Değişiklik yalnızca B veya C sütunundaki hücrelerde yapıldığında devreye girer; diğer sütunlar etkilenmez.
  2. Girdiğiniz değer 7 veya 8 haneli bir sayıysa (gün tek haneli girildiğinde Excel baştaki sıfırı otomatik düşürdüğü için 7 hane de kabul edilir), değer 8 haneye tamamlanır.
  3. İlk iki hane gün, ortadaki iki hane ay, son dört hane yıl olarak ayrıştırılır ve gerçek bir tarih değeri oluşturulur.
  4. Oluşan değer geçerli bir tarihse hücreye yazılır ve biçim gg.aa.yyyy olarak ayarlanır; geçersiz bir tarihse (örn. 32. gün) hücreye dokunulmaz.

Notlar
  • Hücreye ayraçla (01.01.2021 gibi) tarih girdiğinizde kod devreye girmez, Excel tarihi doğrudan tanır.
  • Birden fazla hücreye aynı anda yapıştırma yaptığınızda da kod her hücre için ayrı ayrı çalışır.
  • Bu kodun çalışması için dosyayı makro destekli (.xlsm) biçimde kaydetmeniz gerekir.
 
Geri
Üst