Hocam ekledim.
Comboboxda Verileri Sıralamak
Kodu alttaki gibi yaptım.Sayfada sıralattım haliyle listboxada sıralı gelir.
Tabii sonuç sayfadaki çıkması naormalmi bilmiyorum sizin dosyadada böyle geliyor rakamlar olmadan.
Range("A2" & 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.
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("A11").Value = arr
SÝ.[A21000].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("A2" & 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("D265536"))
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("D2" & Rows.Count).NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 " 'Formati kirmizi renk göstermek icin
.Range("A2" & son).Borders.LineStyle = 1 'cizgi icin
.Range("A2" & 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
Hocam raporda rakamlar yok.
(13/05/2020, 21:00)m_demir yazdı: Çok teşekkürler Hocam ellerinize sağlık.Sıralama olayını alttaki gibi yapabilirsiniz.
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.
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
(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
Konuyu Okuyanlar: 2 Ziyaretçi