Skip to main content

AccessTr.neT


Comboboxda Verileri Sıralamak

Comboboxda Verileri Sıralamak

#7
Hocam ekledim.
.rar Per-Çiz-1.rar (Dosya Boyutu: 292,87 KB | İndirme Sayısı: 4)
Cevapla
#8
(13/05/2020, 21:16)m_demir yazdı: Hocam ekledim.
Hatalı kodu buraya ekleseydibiz mobilden bakardım demek istemiştim neyse bugün sizin iş hallolur abey.
Cevapla
#9
Kodu alttaki gibi yaptım.Sayfada sıralattım haliyle listboxada sıralı gelir.



Range("A2Lol" & Rows.Count).Sort .Range("A2"), xlAscending, , , , , , xlNo
bu kodu ekledim listbox sıralama kodunu silip Private Sub UserForm_Initialize() içindeki

Tabii sonuç sayfadaki çıkması naormalmi bilmiyorum sizin dosyadada böyle geliyor rakamlar olmadan.


[Resim: do.php?img=10194]

Private Sub UserForm_Initialize()
    Dim son As Integer
   
   
    Application.ScreenUpdating = False
    Set SÝ = Sheets("liste")
    SÝ.Unprotect "4455"
    Dim arr
    arr = Array("MUSTERININ ADI SOYADI", "BORC", "ALACAK", "KALAN BAKIYE")
   
    With SÝ
        SÝ.Range("A1Lol1").Value = arr
        SÝ.[A2Lol1000].Clear
   
        For Z = 2 To Sheets.Count
            If LCase(Sheets(Z).Name) <> "sayfa1" And LCase(Sheets(Z).Name) <> "liste" Then
            .Cells(.Range("A" & Rows.Count).End(3).Row + 1, 1) = Sheets(Z).[a1].Value
            .Cells(.Range("A" & Rows.Count).End(3).Row, 2) = Sheets(Z).[G5].Value
            .Cells(.Range("A" & Rows.Count).End(3).Row, 3) = Sheets(Z).[ý5].Value
            .Cells(.Range("A" & Rows.Count).End(3).Row, 4) = Sheets(Z).[K4].Value
            End If
        Next
       
        .Range("A2Lol" & Rows.Count).Sort .Range("A2"), xlAscending, , , , , , xlNo
       
        .Range("A" & .Range("A" & Rows.Count).End(3).Row + 2) = "TOPLAMLAR"
        .Range("B" & .Range("A" & Rows.Count).End(3).Row) = WorksheetFunction.Sum(.Range("B2:B65536"))
        .Range("C" & .Range("A" & Rows.Count).End(3).Row) = WorksheetFunction.Sum(.Range("C2:C65536"))
        .Range("D" & .Range("A" & Rows.Count).End(3).Row) = WorksheetFunction.Sum(.Range("D2Lol65536"))
       
        Application.ScreenUpdating = True
        'MsgBox "AKTARMA ÝÞLEMÝ TAMAMLANMIÞTIR." & vbCrLf & vbCrLf
        SÝ.Protect "4455"
        ListBox1.ColumnHeads = True
        ListBox1.ColumnWidths = "300;95;95;105"
        son = Sheets("liste").Cells(Rows.Count, 1).End(3).Row
        If son = 1 Then ListBox1.RowSource = "liste!A2:F2"
        If son > 1 Then
            .Unprotect "4455"
            .Range("A" & son).Resize(1, 4).Interior.ColorIndex = 4 '4 yesil renk 1 den 56 ya kadar denenebilir.
            With .Range("A" & son)
                .HorizontalAlignment = xlRight
                .VerticalAlignment = xlBottom
            End With
            .Range("B2:C" & Rows.Count).NumberFormat = "#,##0.00"
            .Range("D2Lol" & Rows.Count).NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 " 'Formati kirmizi renk göstermek icin
            .Range("A2Lol" & son).Borders.LineStyle = 1 'cizgi icin
            .Range("A2Lol" & son).Font.Bold = True 'Yazi kalinlasma
            .Range("A" & son + 1).Select
            ListBox1.RowSource = "liste!A2:F" & son
            .Protect "4455"
        End If
    End With

End Sub
Cevapla
#10
Hocam raporda rakamlar yok.
.rar Per-Çiz.4.rar (Dosya Boyutu: 294,28 KB | İndirme Sayısı: 1)
Cevapla
#11
(13/05/2020, 21:00)m_demir yazdı: Çok teşekkürler Hocam ellerinize sağlık.

Hocam Daha önce rapor almak başlığı altında konu açmıştır siz ve Feraz hocam Rapor al olayını yazdığınız kodlarla hal etmiştiniz. UserForm1 de Rapor al butonu ile UserForm3 açılıyor ve liste sayfasına raporu aktarıyor. Çokta güzel olmuş. O zaman unutup size rapor UserForm3 de ve liste sayfasında alfabetik sıraya göre sıralansın demeyi unutmuşum. Daha önce açtığım bir konu olduğu için buraya yazdım. Size zahmet olmayacaksa bakabilirmisiniz. Saygılar.
Sıralama olayını alttaki gibi yapabilirsiniz.
CreateObject("System.Collections.ArrayList")
kullanılmıştır.

Private Sub UserForm_Initialize()

  'ComboBox3.MatchEntry = fmMatchEntryComplete
 
    Dim col As Object
    Set col = CreateObject("System.Collections.ArrayList")

    For i = 7 To [d65536].End(3).Row
        If Not col.contains(CStr(Cells(i, "d").Value)) = True Then
          col.Add CStr(Cells(i, 4))

      'TextBox1.Text = CDate(Date) 'Form Açyly?ta otomatik tarih
     
      End If
    Next
ComboBox1.Clear
If col.Count > 0 Then
    col.Sort
    ComboBox3.List = col.toarray
End If
Set col = Nothing

'TextBox1.Text = CDate(Date) 'Form Açyly?ta otomatik tarih
ListBox1.ColumnCount = 12
ListBox1.ColumnWidths = "20;55;60;140;65;65;50;50;55;65;65;65"
ListBox1.ColumnHeads = True
ListBox1.RowSource = "A7:L" & [A65536].End(3).Row + 1

ComboBox1.RowSource = "Liste!l1:l2"
On Error Resume Next
TextBox21.Text = [e2]
TextBox22.Text = [e4]
TextBox23.Text = [e5]
TextBox60.Text = [C4]
TextBox61.Text = [C5]
TextBox29.Text = [a1]
TextBox24.Text = [H1]
TextBox25.Text = [H2]
TextBox27.Text = [H3]
TextBox63.Text = [H5]
TextBox62.Text = [J1]
TextBox64.Text = [J5]
TextBox65.Text = [L4]
TextBox95.Text = [H4]
TextBox82.Text = [J2]

'ComboBox1_Change
TextBox21 = Format(TextBox21, "#,##0.00")
TextBox22 = Format(TextBox22, "#,##0.00")
TextBox23 = Format(TextBox23, "#,##0.00")
TextBox60 = Format(TextBox60, "#,##0.00")
TextBox61 = Format(TextBox61, "#,##0.00")
TextBox24 = Format(TextBox24, "#,##0.00")
TextBox25 = Format(TextBox25, "#,##0.00")
TextBox27 = Format(TextBox27, "#,##0.00")
TextBox63 = Format(TextBox63, "#,##0.00")
TextBox62 = Format(TextBox62, "#,##0.00")
TextBox64 = Format(TextBox64, "#,##0.00")
TextBox65 = Format(TextBox65, "#,##0.00")
TextBox95 = Format(TextBox95, "#,##0.00")
TextBox82 = Format(TextBox82, "#,##0.00")
If LCase(ActiveSheet.Name) = "sayfa1" Or LCase(ActiveSheet.Name) = "liste" Or LCase(ActiveSheet.Name) = "ÞABLON" Then
    ListBox1.Clear
    Exit Sub
End If
End Sub
Cevapla
#12
(13/05/2020, 22:07)m_demir yazdı: Hocam raporda rakamlar yok.

Alttaki yerleri kontrol edin örnek y5 yanlış bence
.Cells(.Range("A" & Rows.Count).End(3).Row + 1, 1) = Sheets(Z).[a1].Value
 .Cells(.Range("A" & Rows.Count).End(3).Row, 2) = Sheets(Z).[G5].Value
 .Cells(.Range("A" & Rows.Count).End(3).Row, 3) = Sheets(Z).[y5].Value
 .Cells(.Range("A" & Rows.Count).End(3).Row, 4) = Sheets(Z).[K4].Value
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task