• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Listbox Tarih Formatı

Katılım
20 Ocak 2020
Mesajlar
247
Excel Vers. ve Dili
Office 2016 TR 64 Bit
Merhabalar, herkese hayırlı günler dilerim.

Aşağıdaki kod ile TextBox'ta yazdığım değeri, listboxta listeliyorum.

Uygulama ilk açıldığında ListBox'taki tarih 31.01.2022 şeklinde geliyor,

Ancak TextBox'a bir şey yazdığımda bu tarih 01.31.2022 oluyor. Bu sorunu nasıl çözerim. ListBox'taki tarih 7 sütuna denk geliyor


Kod:
Private Sub tbSicil_Change()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual



Dim S1 As Worksheet, son As Long, Veri As Variant, X As Long

If Not IsNumeric(tbSicil) And tbSicil <> "" Then
tbSicil = ""
MsgBox "SADECE SAYISAL İFADE GİR ! ! ! ", vbExclamation + vbOKOnly, "SAYIN " & Environ("Username")

Exit Sub

End If


    Set S1 = Sheets("BALYA")

    son = WorksheetFunction.Max(3, S1.Cells(S1.Rows.Count, 2).End(3).Row)
    Veri = S1.Range("B2:I" & son).Value

    listBalya.RowSource = ""
    listBalya.Clear

    ReDim Liste(2 To 9, 1 To 1)

    For X = LBound(Veri, 1) To UBound(Veri, 1)
        If Veri(X, 3) Like "*" & tbSicil & "*" Then
            Say = Say + 1
            ReDim Preserve Liste(2 To 9, 1 To Say)

            Liste(2, Say) = Veri(X, 1)
            Liste(3, Say) = Veri(X, 2)
            Liste(4, Say) = Veri(X, 3)
            Liste(5, Say) = Veri(X, 4)
            Liste(6, Say) = Veri(X, 5)
            Liste(7, Say) = Veri(X, 6)
            Liste(8, Say) = Veri(X, 7)
            Liste(9, Say) = Veri(X, 8)
        End If
    Next

    If Say > 0 Then
        listBalya.Column = Liste
        tbSicil.BackColor = &H80000005
        tbSicil.ForeColor = &H80000008
    Else
        tbSicil.BackColor = vbRed
        tbSicil.ForeColor = vbWhite
    End If

    Set S1 = Nothing

Label33.Caption = "BULUNAN PERSONEL SAYISI  : " & listBalya.ListCount
captionsil

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
 
Kod:
Private Sub UserForm_Initialize()

Sheets("BALYA").Select

With listBalya
.ColumnCount = 8
.ForeColor = vbBlack
.ColumnWidths = "36;50;50;110;160;100;65;80"
.RowSource = Empty
.RowSource = "Balya!B2:I" & [Balya!A65536].End(3).Row
End With

Label28.Caption = Date

tbSicil.SetFocus
End Sub
 
Bu şekilde denedim ancak olmadı

Kod:
Liste(8, Say) = Format(Veri(X, 7), "dd.mm.yyyy")
 
Örnek dosyanızı paylaşınız.
 
Paylaştığınız dosyada 3 adet arama işlemi yapan TextBox var tümünde aynı değişikliği yaparak deneyiniz.
 
Hocam tüm TextBoxların Change özelliğinde #3 mesajdaki gibi değişiklik yaptım ancak Overflow hatası verdi. Eksik bir tanımlama mı yaptım diye baktim ama çözemedim
 
Ben denediğimde hata vermedi.
 
Alternatif olarak aşağıdaki gibi deneyiniz.

Liste(8, Say) = FormatDateTime(Veri(X, 7), vbShortDate)
 
Sorununu aşağıdaki kod ile çözdüm belki birisinin işine yarar diye paylaşıyorum.

Kod:
Liste(8, Say) = Format(CDbl(Veri(X, 7)), "dd.mm.yyyy")
 
Bu şekilde sonuç alıyorsanız demek ki hücredeki verileriniz tarih görünümlü METİN biçimindedir.

Eğer tarih içeren hücrelerde saat bilgisi yoksa alternatif olarak aşağıdaki gibi de sonuç alabiliyor olmanız gerekir.

C++:
Liste(8, Say) = Format(CLng(Veri(X, 7)), "dd.mm.yyyy")
 
Bu şekilde sonuç alıyorsanız demek ki hücredeki verileriniz tarih görünümlü METİN biçimindedir.

Eğer tarih içeren hücrelerde saat bilgisi yoksa alternatif olarak aşağıdaki gibi de sonuç alabiliyor olmanız gerekir.

C++:
Liste(8, Say) = Format(CLng(Veri(X, 7)), "dd.mm.yyyy")
Biçimlendirme kısmında baktığım da hepsi tarih olarak gözüküyor, vermiş olduğunuz kod da sorunsuz bir şekilde çalışıyor. Çok teşekkür ediyorum yardımıniz için .
 
Geri
Üst