Bitmeyen çile : Tarih formatı

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
558
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Görsel olarak 02.01.2025 görünen ama değer olarak 01.02.2025 görünen veriyi A2 Hücresine aldım.
Sizdeki görüntü ile aynı. Bakınca 02.01 görünüyor hücre değerine girince 01.02 görünüyor.
Gün formülü ile B2'ye 1 değerini,
Ay formülü ile C2'ye 2 değerini,
Yıl Formülü ile de D2'ye Yılı aldım,

Daha sonra Gün için Ay değerini, Ay için Gün değerini, Yıl için de yılı birleştirip tarih formatına çevirdim, E2'de görsel olarak ta içerik olarakta 02.01.2025 oldu.
Ne dersiniz :) ?
Hücre tarih formatında Türkiye varsa yanlış sonuç verir.
Hücrenin tarih formatı Türkiye ise ay-gün değişimi yapmayan, Türkiye değilse ay-gün değişimi yapan bir koda ihtiyaç var. :)
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
558
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Katılım
5 Kasım 2006
Mesajlar
603
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Arkadaşlar yani Türkiye-Türkçe'ye çevirdiğinizde F8 nolu hücrede 02.01.2025 mi yazıyor?
Harici siteye yüklediğiniz dosyada f2 ye kodlar uygulayınca ay ve gün yer değiştirmişti yani istediğiniz gibi bende.
Yani 02.01 ise 01.02 yazıyordu aklımda kalan.
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
558
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
evet isterseniz uzaktan bağlantıyla bağlanıp kontrol edebilirsiniz
Estağfurullah onu demek istemedim. Halit hoca'nın görselinde de aynı şekilde görünce benim office'te bir sıkıntı olduğunu düşünmemiştim açıkçası.
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
558
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Harici siteye yüklediğiniz dosyada f2 ye kodlar uygulayınca ay ve gün yer değiştirmişti yani istediğiniz gibi bende.
Yani 02.01 ise 01.02 yazıyordu aklımda kalan.
Örneği keşke 13.01.2025 şeklinde verseydim. Biraz karıştı sanırım :)
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,855
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
29 nolu mesajda yazmıştım ama eksik kalmış herhalde

Hücreleri biçimlendir den
isteğe uyarlanmış dan

gg.aa.yyyy
g.a.yyyy

veya
aa.gg.yyyy
a.g.yyyy

bunlardan birini denermisin ikisi hücreye göre veri yazıyor ikisi görünene göre veri yazıyor.
 
Katılım
5 Kasım 2006
Mesajlar
603
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Örneği keşke 13.01.2025 şeklinde verseydim. Biraz karıştı sanırım :)
Yok hocam karışmadı bence.Müsait olunca böylede denerim ama anladım sizin sorunu zaten ve böyle deneyince normalde sonuç 13.01.2025 olur bence dediğim kod ilede.
Yani cdbl ile ile bu verdiğiniz tarihi sayıya çevirince zaten ingilizcede olduğu için bir sayı oluşuyor.Bu sayıyıda Türkiye formatına yani dd.mm.yyyy yapınca çalışması lazım diye düşünüyorum.
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
558
Excel Vers. ve Dili
Office 2024 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
29 nolu mesajda yazmıştım ama eksik kalmış herhalde

Hücreleri biçimlendir den
isteğe uyarlanmış dan

gg.aa.yyyy
g.a.yyyy

veya
aa.gg.yyyy
a.g.yyyy

bunlardan birini denermisin ikisi hücreye göre veri yazıyor ikisi görünene göre veri yazıyor.
Halit hocam 4 şekli de denedim.
ilk ikisi hücreyi 01.02.2025'e çevirdi. (istenmeyen sonuç)
sonraki ikisi olduğu gibi bıraktı. (istenmeyen sonuç, çünkü açıklama satırında halen 01.02.2025 yazıyor yani tarih halen 1 şubat 2025 gibi algılanıyor office tarafından)
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,855
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Sizin dosyanızdaki sayfaları çogaltarak Örnek dosya ekledim buna bir bakın 4 sayfa mevcut
 

Ekli dosyalar

Katılım
5 Kasım 2006
Mesajlar
603
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Eğer 01.13.2025 yazılırsa alttaki kod ile denedim çalıştı tabii dahada ayarlanabilinir.Benden bu kadar.Kolay gelsin.


C++:
Private Sub tarih()
    Dim trh As Date
    
    With Range("F2")
        If Val(Split(.Value, ".")(1)) > 12 Then
            trh = DateSerial(Val(Split(.Value, ".")(2)), Val(Split(.Value, ".")(0)), Val(Split(.Value, ".")(1)))
        Else
            trh = DateSerial(Val(Split(.Value, ".")(2)), Val(Split(.Value, ".")(1)), Val(Split(.Value, ".")(0)))
        End If
         .Value = CDbl(trh)
        .NumberFormat = "dd.mm.yyyy"
    End With
End Sub
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,855
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
farklı bir yol
hücreleri biçimlendir den geneli seç ve sonra dosyayı kaydet ve kapat
sonra yeniden aç hücreleri biçimlendir den tarih formatını seç dosyadaki ilgili hücre düzeliyor.
 
Üst