Listbox ta son kaydı ilk sırada nasıl gösteririm

Katılım
18 Ocak 2006
Mesajlar
9
Mrb.. Listbox1 sadece Combobox1 den veri alıyor ama ilk kayıtlar ilk sırada ben en son yazdığım verinin ilk sırada gözükmesini istiyorum bunu nasıl yapabilirim...

teşekkürler..
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
İsteminiz çok açık değil... keşke bir örnek dosya ekleseydiniz ama..
ComboBox un verileri Sayfada "A" sütunundan aldığını var sayıyoruz ve Combobox her değiştiğinde Listbox sondan geriye doğru listeleniyor.

Private Sub ComboBox1_Change()
ListBox1.Clear
For suz = WorksheetFunction.CountA(Range("a1:a65536")) to 1 Step-1
If Range("a" & suz) Like ComboBox1 & "*" Then
ListBox1.AddItem
s = s + 1
ListBox1.List(s - 1, 0) = Range("a" & suz)
End If
Next
End Sub
 
Katılım
18 Ocak 2006
Mesajlar
9
Private Sub cboFirma_Change()
ListBox1.Clear
For suz = WorksheetFunction.CountA(Range("a1:a65536")) To 1 Step -1
If Range("a" & suz) Like cboFirma & "*" Then
ListBox1.AddItem
s = s + 1
ListBox1.List(s - 1, 0) = Range("a" & suz)
End If
Next
End Sub

Private Sub cmdCikis_Click()
Unload Me
End Sub
Private Sub cmdTemizle_Click()
' Clear the form
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
ctl.Value = ""
ElseIf TypeName(ctl) = "CheckBox" Then
ctl.Value = False
End If
Next ctl
End Sub
Private Sub cmdKayit_Click()

Dim RowCount As Long
Dim ctl As Control
' Check user input
If Me.cboFirma.Value = "" Then
MsgBox "Firma Adını giriniz.", vbExclamation, "Staff Expenses"
Me.cboFirma.SetFocus
Exit Sub
End If
If Me.cboBey.Value = "" Then
MsgBox "Beyanname Tarih / Sayı giriniz.", vbExclamation, "Staff Expenses"
Me.cboFirma.SetFocus
Exit Sub
End If
If Me.cboVergi.Value = "" Then
MsgBox "Vergi Cinsini seçiniz.", vbExclamation, "Staff Expenses"
Me.cboFirma.SetFocus
Exit Sub
End If
If Me.txtMiktar.Value = "" Then
MsgBox "Vergi miktarını giriniz.", vbExclamation, "Staff Expenses"
Me.cboFirma.SetFocus
Exit Sub
End If
' Write data to worksheet
RowCount = Worksheets("veri").Range("A1").CurrentRegion.Rows.Count
With Worksheets("veri").Range("A1")
.Offset(RowCount, 0).Value = Me.cboFirma.Value
.Offset(RowCount, 1).Value = Me.cboBey.Value
.Offset(RowCount, 2).Value = Me.cboVergi.Value
.Offset(RowCount, 3).Value = Me.txtMiktar.Value
End With
' Clear the form
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
ctl.Value = ""
ElseIf TypeName(ctl) = "CheckBox" Then
ctl.Value = False
End If
Next ctl
End Sub

Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 1
ListBox1.RowSource = "veri!A2:A65000"
ListBox1.ColumnHeads = True
End Sub
Private Sub UserForm_Click()

End Sub

***************************

ilgin için teşekkürler ...

runtime error : "380"
could not set the RowSource Property .İnvalid property value.
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
İyi Çalışmalar...

Private Sub cboFirma_Change()
Sheets("veri").Select
ListBox1.Clear
For suz = WorksheetFunction.CountA(Range("a1:a65536")) To 2 Step -1
If Range("a" & suz) Like cboFirma & "*" Then
ListBox1.AddItem
s = s + 1
ListBox1.List(s - 1, 0) = Range("a" & suz)
End If
Next
End Sub

Şeklinde de yapabilirdiniz çünkü ListBox1.RowSource = "veri!A2:A65000"
gibi görünüyor.
sonra başa Sheets("veri").Select yazabilirisiniz. ComboBox a yazılacak verilerin olduğu sayfa seçilmesi için.
 
Katılım
16 Kasım 2007
Mesajlar
700
Excel Vers. ve Dili
Office 2003 - Tr
dolu_son_satır = Sheets("Veri").Cells(65536, "A").End(xlUp).Row
ListBox1.RowSource = "veri!A2:A" & dolu_son_satır

Şeklinde bir uygulama daha da iyi olabilir.
 
Katılım
18 Ocak 2006
Mesajlar
9
kodları denedim,,,
Private Sub cboFirma_Change()
Sheets("veri").Select
ListBox1.Clear-----> Unspecified error hatası verdi
For suz = WorksheetFunction.CountA(Range("a1:a65536")) To 2 Step -1
If Range("a" & suz) Like cboFirma & "*" Then
ListBox1.AddItem
s = s + 1
ListBox1.List(s - 1, 0) = Range("a" & suz)
End If
Next
End Sub

**************

aşağıdaki kod ise çalıştı fakat
hata vermedi ama listbox ta bilgiler görünmedi

dolu_son_satır = Sheets("Veri").Cells(65536, "A").End(xlUp).Row
ListBox1.RowSource = "veri!A2:A" & dolu_son_satır
 
Üst