tarih format hatası

BYSERTTAS

Altın Üye
Katılım
9 Ekim 2012
Mesajlar
136
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2021 TR 32 Bit
Altın Üyelik Bitiş Tarihi
06-01-2025
Merhaba değerli hocalarım..
excell sayfasında normal tarih giriyorum. gg.aa.yyyy şeklinde ancak listbox a aldığımda 01.06.2024 olması gerekirken 6/01/2024 şeklinde geliyor. pc nin bölgesel ve tarih formatlarını kontrol ediyorum doğru ama bir türlü düzelmiyor. UserForm veya VBA da herhangi bir ayar olabilirmi yardımcı olursanız sevinirim.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,135
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Veriyi listboxa hangi yöntemle aldığınızı da belirtseniz sorunuz daha net cevaplanabilirdi.
Listboxa veri alırken Range().Value yerine Range().Text kullanırsanız veriyi hücrede gözüktüğü şekliyle aldırabilirsiniz.
 

BYSERTTAS

Altın Üye
Katılım
9 Ekim 2012
Mesajlar
136
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2021 TR 32 Bit
Altın Üyelik Bitiş Tarihi
06-01-2025
Me.ListBox2.List = Worksheets("TumKayıtlar").Range("a2:L" & Worksheets("TumKayıtlar").Range("a5000").End(xlUp).Row).Value
bu şekilde alıyorum. ancak sorun bu satır olduğunu düşünmüyorum. pc. bölgesel ayaraları düzelttiğimde düzgün alıyor. fakat programı kapatıp tekrar açonca yine aynı oluyor. tarih format ayarlarında sadece g.aa.yyyy var önüne bir g daha koyduğumda durumdüzeliyor. fakat sonra tekrar değişiyor.
 

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,529
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
Merhaba,
Ustalarımızdan öğrenip kendi kullandığım listbox a veri alma koduna bakarak kendinize uyarlayabilirsiniz.
Kod:
Private Sub UserForm_Initialize()

ListBox1.ColumnCount = 9
    ListBox1.ColumnWidths = "74;120;266;64;70;36;36;36"
 

GOSTER
End Sub
Sub GOSTER()
Application.ScreenUpdating = False
On Error Resume Next
Set s1 = Sheets("malzemeler")
s1.AutoFilterMode = False
Dim a As Long, i As Long
    ReDim dizial(1 To 9, 1 To 1)
    
    ListBox1.Clear
    For i = 2 To s1.Cells(Rows.Count, 1).End(3).Row
        'If UCase(Replace(Replace(s1.Cells(i, "B"), "ı", "I"), "i", "İ")) Like _
        '"*" & UCase(Replace(Replace(TextBox1.Text, "ı", "I"), "i", "İ")) & "*" _
        'Then
            a = a + 1
            ReDim Preserve dizial(1 To 9, 1 To a)
            dizial(1, a) = s1.Cells(i, "A")
            dizial(2, a) = s1.Cells(i, "b")
            dizial(3, a) = s1.Cells(i, "c")
            dizial(4, a) = Format(s1.Cells(i, "d"), "DD.MM.YYYY")
            dizial(5, a) = Format(s1.Cells(i, "e"), "#,##0")
            dizial(6, a) = Format(s1.Cells(i, "f"), "#,##0")
             dizial(7, a) = Format(s1.Cells(i, "g"), "#,##0")
            dizial(8, a) = Format(s1.Cells(i, "h"), "#,##0")
            dizial(9, a) = Format(s1.Cells(i, "I"), "#,##0")
        'End If
    Next i
        ListBox1.Column = dizial
    Erase dizial
    a = Empty
    i = Empty
    Application.ScreenUpdating = True
End Sub
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,135
Excel Vers. ve Dili
2007 Türkçe
Me.ListBox2.List = Worksheets("TumKayıtlar").Range("a2:L" & Worksheets("TumKayıtlar").Range("a5000").End(xlUp).Row).Value
bu şekilde alıyorum. ancak sorun bu satır olduğunu düşünmüyorum. pc. bölgesel ayaraları düzelttiğimde düzgün alıyor. fakat programı kapatıp tekrar açonca yine aynı oluyor. tarih format ayarlarında sadece g.aa.yyyy var önüne bir g daha koyduğumda durumdüzeliyor. fakat sonra tekrar değişiyor.
Sorunu şimdi anladım, fakat kalıcı bir çözüm bulamadım. Geçici bir çözüm olarak döngüyle düzeltme yoluna gittim. Veri alma koduna aşağıdaki döngüyü ilave ederek düzeltme sağlanıyor, ancak ne derece güvenilir olur bilemem.
Tarih verilerinizin Listbox'ın 2. sütununda olduğunu varsayarsak aşağıdaki kodu deneyiniz.
Rich (BB code):
With Me.ListBox2
    .List = Worksheets("TumKayıtlar").Range("a2:L" & Worksheets("TumKayıtlar").Range("a5000").End(xlUp).Row).Value
    For a = LBound(.List) To UBound(.List)
        .List(a, 1) = Format(DateValue(.List(a, 1)), "dd.mm.yyyy")
    Next
End With
 
Üst