Bitmeyen çile : Tarih formatı

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
Yukardaki kodları bazen bende kullanıyorum ve üstteki satır altta oluyordu yani cdate önce yazılıp sonra diğeri ekleniyordu.Belki çalışır böyle.
Aynı şekilde açıklama satırındakini hücreye yazdı.
Sayın @pitchoute'nun fikrinden hareketle NumberFormatLocal üzerinden gitmeye çalışıyorum. gg.aa.yyyy kısmını kontrol ettirecek, eğer örneğin ilk noktadan önceki harf a ise bu durumda aa ile gg yer değiştirsin ve hücreye tekrar yazsın gibi bir şey yapabilirsem diye...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Belki işinize yarayabilir..

C++:
Option Explicit

Sub Test()
    With Sheets("siparis").Range("F2")
        If .Text <> CStr(Format(.Value, "dd.mm.yyyy")) Then
            .NumberFormat = "[$-tr-TR]mm.dd.yyyy;@"
        Else
            .NumberFormat = "[$-tr-TR]mm.dd.yyyy;@"
        End If
    End With
End Sub
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Konuyu anlamak için yazıyorum.
Siz boş bir yeniden kitap oluşturup ve açın tarih formatını oraya bir yazın oradaki sonuç nasıl çıkacak.
bu durumda dosyanın ilgili sayfası bozuk veya sizin bilgisayarınızdaki bölgesel ayarlarındaki tarih formatına bakmak lazım
Benim bilgisayarımdaki tarih formatı böyle

Yeni Bit Eşlem Resmi (12).jpg
 

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
Konuyu anlamak için yazıyorum.
Siz boş bir yeniden kitap oluşturup ve açın tarih formatını oraya bir yazın oradaki sonuç nasıl çıkacak.
bu durumda dosyanın ilgili sayfası bozuk veya sizin bilgisayarınızdaki bölgesel ayarlarındaki tarih formatına bakmak lazım
Benim bilgisayarımdaki tarih formatı böyle
Halit hocam, dediğinizi yaptım. Format normal olarak gg.aa.yyyy şeklinde ayarlanıyor boş ve yeni bir sayfada. Onda sorun yok. Bendeki bölgesel ayarlar ekteki şekilde.

Söylediğiniz gibi, Üzerinde yazdığım kodla işlemler yapılan dosya bozuk büyük ihtimalle. Ben de bu PDF'ten elektronik tabloya çevrim yapılan sayfada, format eğer bozuksa ("gg.aa.yyyy" dışında hangi format olursa olsun) "gg.aa.yyyy" 'ye çevirecek bir kod yazmaya uğraşıyorum.
Biraz da yapay zekanın yardımı ile şu noktaya gelebildim.

Kod:
Private Sub CommandButton2_Click()
Dim cell As Range
    Set cell = ActiveCell

    Dim formatString As String
    formatString = cell.NumberFormatLocal

    Dim firstDotPosition As Long
    Dim secondDotPosition As Long
    firstDotPosition = InStr(1, formatString, ".")
    secondDotPosition = InStr(firstDotPosition + 1, formatString, ".")

    Dim beforeDotCharacter As String
    If firstDotPosition > 1 Then
        beforeDotCharacter = Mid(formatString, firstDotPosition - 1, 1)
    Else
        beforeDotCharacter = "Yok"
    End If

    Dim charsBeforeFirstDot As Long
    Dim charsBetweenDots As Long

    charsBeforeFirstDot = firstDotPosition - 1
    If secondDotPosition > 0 Then
        charsBetweenDots = secondDotPosition - firstDotPosition - 1
    Else
        charsBetweenDots = 0
    End If

    If firstDotPosition > 0 Then
        MsgBox "İlk noktanın yeri: " & firstDotPosition & vbCrLf & _
               "Noktadan önceki karakter: " & beforeDotCharacter & vbCrLf & _
               "İlk noktadan önceki karakter sayısı: " & charsBeforeFirstDot & vbCrLf & _
               "İlk noktayla ikinci nokta arasındaki karakter sayısı: " & charsBetweenDots
    Else
        MsgBox "NumberFormatLocal içinde nokta bulunamadı."
    End If
End Sub
Bunu biraz daha geliştirip formatı her durumda "gg.aa.yyyy" yapmaya çalışacağım.

Saygılarımla.
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
19 nolu mesajda pdf den bahsetmişsiniz ama tam açıklayıcı bilgi olmadığından sorun anlaşılamamıştır.
24 nolu mesajda ise pdf dosyasını dönüştürüp veya kopyalayıp alınan verilerde sıkıntı yaşadığınız anlaşılıyor.

Soru ilk başta pdf dosyasından aldığım verilerde veya kopyaladığımda bu sıkıntıyı alıyorum deseydiniz belki yardımcı olacaklar ona göre çözüm üretebilirler.
 

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
Belki işinize yarayabilir..

C++:
Option Explicit

Sub Test()
    With Sheets("siparis").Range("F2")
        If .Text <> CStr(Format(.Value, "dd.mm.yyyy")) Then
            .NumberFormat = "[$-tr-TR]mm.dd.yyyy;@"
        Else
            .NumberFormat = "[$-tr-TR]mm.dd.yyyy;@"
        End If
    End With
End Sub
Korhan hocam, verdiğiniz kod yine açıklama satırındakini hücreye yazdı. Ama yukarıda yazdığım kodlardaki if seçeneği için bu verdiğiniz kıstası kullanacağım çünkü gayet kısa ve net. Teşekkür ederim.
 

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
19 nolu mesajda pdf den bahsetmişsiniz ama tam açıklayıcı bilgi olmadığından sorun anlaşılamamıştır.
24 nolu mesajda ise pdf dosyasını dönüştürüp veya kopyalayıp alınan verilerde sıkıntı yaşadığınız anlaşılıyor.

Soru ilk başta pdf dosyasından aldığım verilerde veya kopyaladığımda bu sıkıntıyı alıyorum deseydiniz belki yardımcı olacaklar ona göre çözüm üretebilirler.
Halit hocam, 1 numaralı mesajımın altında PDF'ten elektronik tabloya döndüğümü belirtmiştim.
 
Katılım
5 Kasım 2006
Mesajlar
601
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Belki işinize yarayabilir..

C++:
Option Explicit

Sub Test()
    With Sheets("siparis").Range("F2")
        If .Text <> CStr(Format(.Value, "dd.mm.yyyy")) Then
            .NumberFormat = "[$-tr-TR]mm.dd.yyyy;@"
        Else
            .NumberFormat = "[$-tr-TR]mm.dd.yyyy;@"
        End If
    End With
End Sub
İf ve else olan yerdeki aynı heralde dikkatten kaçmış.
Birde harici upload siteye yüklenebilinirmi dosya denemek için.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Hücreleri biçimlendir den
isteğe uyarlanmış dan
gg.aa.yyyy bunu
veya
g.a.yyyy

denermisinYeni Bit Eşlem Resmi (14).jpg
 

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

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Peki bahsi geçen tarih 1 Şubat 2025 mi? Yoksa 2 Ocak 2025 mi?
 
Katılım
5 Kasım 2006
Mesajlar
601
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
Bendede ingilizce gibi oldu birde alttaki gibi deneyin.

Kod:
Range("F2").Value = CDbl(Range("F2").Value)
Range("F2").NumberFormat = "dd.mm.yyyy"
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
402
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
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 :) ?
 

Ekli dosyalar

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
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.
 

onder_09

Altın Üye
Katılım
17 Mart 2017
Mesajlar
206
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2025
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.
bendeki office de düzeldi muhtemelen bence sizin office sürümünde problem var. Direk dili değiştirip ayar yapınca düzeldi.
 
Üst