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...
İ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
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.
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.
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
Sizlere daha iyi bir deneyim sunabilmek icin sitemizde çerez konumlandırmaktayız, web sitemizi kullanmaya devam ettiğinizde çerezler ile toplanan kişisel verileriniz Veri Politikamız / Bilgilendirmelerimizde belirtilen amaçlar ve yöntemlerle mevzuatına uygun olarak kullanılacaktır.