Bitmeyen çile : Tarih formatı

Katılım
5 Kasım 2006
Mesajlar
592
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Arkadaşlar bir yanlış anlaşılmayı düzelteyim: Türkiye yapınca da düzelmiyor. Hangi ayarı yaparsak yapalım hücrede yazan değer olan 02.01.2025'e ulaşamıyoruz. Her seferinde hücre açıklamasında yazan 1 şubat 2025'e ulaşabiliyoruz.
Ama olması gereken değer 2 ocak 2025 yani hücrede yazan değer.
Kendi adıma Türkçeye çevirincede düzeldi ve önceden yazdığım kod ilede düzeldi diğer kodlar denemedim.
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
553
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
553
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
592
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
553
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
553
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,799
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
592
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
553
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,799
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
592
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,799
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.
 
Katılım
11 Temmuz 2024
Mesajlar
150
Excel Vers. ve Dili
Excel 2021 Türkçe
Şöyle deneyip sonucu paylaşabilir misiniz;


Kod:
Sub TarihiDuzelt()
    Dim ws As Worksheet
    Dim sTarih As String
    Dim arrTarih As Variant
    Dim dTarih As Date
    Dim rng As Range
    Dim gun As Integer, ay As Integer, yil As Integer

    ' Çalışma sayfasını ve tarihi içeren hücreyi belirleyin
    Set ws = Sheets("örnek1")
    Set rng = ws.Range("F2") ' Hücre adresini ihtiyacınıza göre değiştirin
    sTarih = rng.Text
    arrTarih = Split(sTarih, ".")
    If UBound(arrTarih) = 2 Then
        gun = CInt(arrTarih(0))
        ay = CInt(arrTarih(1))
        yil = CInt(arrTarih(2))
        If gun >= 1 And gun <= 31 And ay >= 1 And ay <= 12 Then
            dTarih = DateSerial(yil, ay, gun)
            rng.Value = dTarih
            rng.NumberFormat = "dd.mm.yyyy"
        Else
            MsgBox "Hücre " & rng.Address & " içindeki tarih değerleri geçersiz.", vbExclamation
        End If
    Else
        MsgBox "Hücre " & rng.Address & " içindeki tarih formatı tanınmadı.", vbExclamation
    End If
End Sub
 
Üst