Excel Forum

Excel Forum (http://www.excel.web.tr/index.php)
-   Makro-VBA (http://www.excel.web.tr/forumdisplay.php?f=48)
-   -   Listbox ' ta tarih ve sayı formadı (http://www.excel.web.tr/showthread.php?t=169485)

igultekin2000 03-01-2018 22:43

Listbox ' ta tarih ve sayı formadı
 
iyi akşamlar; kullandığım kodda listboxta hem tarih ve hem de sayı formatı kullanmak gerekiyor.
Kod:

Private Sub UserForm_Initialize()
Dim z As Object, Liste()
If Sheets("I_TKP").AutoFilterMode Then Sheets("I_TKP").AutoFilterMode = False
Set z = CreateObject("Scripting.dictionary")
Liste = Sheets("I_TKP").Range("A2:A" & Sheets("I_TKP").Cells(Rows.Count, "A").End(xlUp).Row).Value
For i = 1 To UBound(Liste)
    If Not z.exists(Liste(i, 1)) Then
        z.Add Liste(i, 1), Nothing
    End If
Next i
If z.Count > 0 Then
    ComboBox1.List = Application.Transpose(Array(z.keys))
    ComboBox1.ListIndex = 0
End If
ListBox1.ColumnCount = 13
ListBox1.ColumnWidths = "112;65;60;55;1;70;70;1;50;50;50;70;1"
Call listele
'ListBox1.RowSource = "I_TKP!A2:G" & Sheets("I_TKP").Range("A65536").End(xlUp).Row
ListBox1.ColumnHeads = True ' ilk satır başlık

For i = 0 To ListBox1.ListCount - 1
    For k = 2 To ListBox1.ColumnCount - 1
        'ListBox1.List(i, k) = Format(ListBox1.List(i, k), "#,##0.00")
        ListBox1.List(i, k) = Format(ListBox1.List(i, k), "dd.mm.yyyy")
    Next
   
    Next


End Sub
Sub listele()
Dim s1 As Worksheet, s2 As Worksheet, sonsat2 As Long, myarr()
Dim i As Long, Liste()
ListBox1.RowSource = Empty
Set s1 = Sheets("I_TKP")
Set s2 = Sheets("Suz")
s2.Range("A2:m" & Rows.Count).Clear
If s1.AutoFilterMode Then s1.AutoFilterMode = False
s1.Range("A2").AutoFilter field:=1, Criteria1:=ComboBox1.Value & "*"
s1.Range("A2").CurrentRegion.Offset(1, 0).Copy s2.Range("A2")
s2.DrawingObjects.Delete
s1.AutoFilterMode = False
sonsat2 = s2.Cells(Rows.Count, "A").End(xlUp).Row
Liste = s2.Range("A2:m" & sonsat2)
ReDim myarr(1 To 13, 1 To sonsat2)
For i = 1 To UBound(Liste)
    myarr(1, i) = Liste(i, 1)
    myarr(2, i) = Liste(i, 2) 'Format(Liste(i, 2), "dd.mm.yyyy")
    myarr(3, i) = Liste(i, 3)
    myarr(4, i) = Liste(i, 4)
    myarr(5, i) = Liste(i, 5)
    myarr(6, i) = Liste(i, 6)
    myarr(7, i) = Liste(i, 7)
    myarr(8, i) = Liste(i, 8)
    myarr(9, i) = Liste(i, 9)
    myarr(10, i) = Liste(i, 10)
    myarr(11, i) = Liste(i, 11)
    myarr(12, i) = Liste(i, 12)
    myarr(13, i) = Liste(i, 13)
Next i
If UBound(Liste) > 0 Then ListBox1.Column = myarr
End Sub

Kod:

For i = 0 To ListBox1.ListCount - 1
    For k = 2 To ListBox1.ColumnCount - 1
        'ListBox1.List(i, k) = Format(ListBox1.List(i, k), "#,##0.00")
        ListBox1.List(i, k) = Format(ListBox1.List(i, k), "dd.mm.yyyy")
    Next

ikisinden birini aktif edemiyorum. ikisin birden kullanmak için nasıl bir düzenleme yapmam gerekiyor. Teşekkürler

halit3 04-01-2018 07:20

Bunu bir dene

Kod:

For i = 0 To ListBox1.ListCount - 1
    For k = 2 To ListBox1.ColumnCount - 1

        If IsNumeric(ListBox1.List(i, k)) = True Then
       
            If IsDate(ListBox1.List(i, k)) = True And Len(ListBox1.List(i, k)) = 10 Then
            ListBox1.List(i, k) = Format(ListBox1.List(i, k), "dd.mm.yyyy")
            Else
            ListBox1.List(i, k) = Format(ListBox1.List(i, k), "#,##0.00") * 1
            End If
       
        Else
        ListBox1.List(i, k) = Format(ListBox1.List(i, k), "#,##0.00")
        End If
   
    Next
Next


igultekin2000 04-01-2018 08:38

hata kodu verdi
 
1 Eklenti(ler)
Hata kodu verdi

halit3 04-01-2018 10:32

kırmızı yeri silin

igultekin2000 04-01-2018 10:45

Sorunsuz çalışıyor
 
Alıntı:

halit3 tarafından gönderildi (Mesaj 924470)
kırmızı yeri silin

teşekkür ederim, sorunsuz çalışıyor


Saat 22:10

Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.