Listboxa additem ile veri alma

Katılım
9 Ağustos 2009
Mesajlar
208
Excel Vers. ve Dili
Excel 2007
Merhabalar;

Oluşturduğum userform üzerinde 3 kolona sahip bir listbox nesnesi var.
Listbox1.additem Sayfa1.Range("A1").value ile listbox a veri alıyorum ancak yapmak istediğim "B1" ve "C1" hücrelerinde ki veriyi de listbox ın diğer sütunlarına almak. Yani 3 kolonlu listboxımda "A1" , "B1", "C1" aynı satırda farklı kolonlarda gözükmeli. Nasıl yapabilirim yardımcı olurmusunuz?
 
Katılım
14 Aralık 2007
Mesajlar
1,073
Excel Vers. ve Dili
EXCEL 2007 TÜRKÇE
Merhabalar;

Oluşturduğum userform üzerinde 3 kolona sahip bir listbox nesnesi var.
Listbox1.additem Sayfa1.Range("A1").value ile listbox a veri alıyorum ancak yapmak istediğim "B1" ve "C1" hücrelerinde ki veriyi de listbox ın diğer sütunlarına almak. Yani 3 kolonlu listboxımda "A1" , "B1", "C1" aynı satırda farklı kolonlarda gözükmeli. Nasıl yapabilirim yardımcı olurmusunuz?
Kod:
Private Sub UserForm_Initialize()
'Coder By Security
ListBox1.ColumnCount = 3
ListBox1.ColumnWidths = "50,50,50"
ListBox1.RowSource = "sayfa1!a1:c" & Sheets("SAYFA1").[A65536].End(xlUp).Row
End Sub
Merhaba Yukardaki Kodu Deneyin...
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,214
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
yanıt

Kod:
Private Sub UserForm_Activate()
ListBox1.ColumnCount = 3
ListBox1.AddItem
ListBox1.List(0, 0) = [a1]
ListBox1.List(0, 1) = [b1]
ListBox1.List(0, 2) = [c1]
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Büyük veri yığınlarında listboxta additem yöntemi ile veri almayı tavsiye etmiyorum.
Çok ağır kalıyor.
Üstelik 10 sütundan fazla veri alamıyorsunuz.
Rowsource yöntemini veya dizi yöntemini tavsiye ederim.
Bırakın additem'i
Aşağıdaki yöntemide kullanabilirsiniz.:cool:
Kod:
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 3
ListBox1.List = Range("A1:C1").Value
End Sub
 
Katılım
9 Ağustos 2009
Mesajlar
208
Excel Vers. ve Dili
Excel 2007
Öncelikle cevaplarınız için çok teşekkür ederim. Benim kullandığım kodlar aşağıdaki gibidir. Ancak eklenecek veri sorgulamadan geçtiği için rowsource kullanamadım. Bu şekilde nasıl yapabilirim??

sira2 = ActiveSheet.Cells(2, sira + 4).Column

For i = 3 To Sayfa4.Range("B65536").End(3).Row
If Sayfa4.Cells(i, sira2).Value <> "" Then


ListBox1.AddItem Sayfa4.Cells(i, 2).Value ''''''ancak buraya i,3 ve i,4 ü de yazdırmak istiyorum.
.......
......
......
End If
Next i
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Öncelikle cevaplarınız için çok teşekkür ederim. Benim kullandığım kodlar aşağıdaki gibidir. Ancak eklenecek veri sorgulamadan geçtiği için rowsource kullanamadım. Bu şekilde nasıl yapabilirim??

sira2 = ActiveSheet.Cells(2, sira + 4).Column

For i = 3 To Sayfa4.Range("B65536").End(3).Row
If Sayfa4.Cells(i, sira2).Value <> "" Then


ListBox1.AddItem Sayfa4.Cells(i, 2).Value ''''''ancak buraya i,3 ve i,4 ü de yazdırmak istiyorum.
.......
......
......
End If
Next i
O zaman dizi yöntemini kullanın.
Sorguya göre diziye verilerinizi alıp sonrada listboxın column özelliğine veya list özelliğine dizi'yi atayabilirsiniz.:cool:
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekli dosyayı inceleyiniz.:cool:
Kod:
Private Sub CommandButton1_Click()
Dim liste(), myarr(), sat As Long, i As Long, a As Long
ListBox1.Clear
sat = Sheets("Sayfa4").Cells(65536, "B").End(xlUp).Row
liste = Sheets("Sayfa4").Range("A3:C" & sat).Value
ReDim myarr(1 To 3, 1 To sat)
For i = 1 To UBound(liste, 1)
    If liste(i, 1) <> "" Then
        a = a + 1
        myarr(1, a) = liste(i, 1)
        myarr(2, a) = liste(i, 2)
        myarr(3, a) = liste(i, 3)
    End If
Next i
Erase liste
If a > 0 Then
    ReDim Preserve myarr(1 To 3, 1 To a)
    ListBox1.Column = myarr
End If
Erase myarr
End Sub
Private Sub ListBox1_Click()

End Sub

Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 3

End Sub
 

Ekli dosyalar

Katılım
9 Ağustos 2009
Mesajlar
208
Excel Vers. ve Dili
Excel 2007
Evren Bey merhaba;
Gönderdiğiniz dosyayı tam olarak kendi dosyama uyarlayamadım. Listeletmede sorun yok ancak sorgulamayı uyarlayamadım. Kendi dosyamı ekliyorum. Yardımcı olabilirmisiniz?
 

Ekli dosyalar

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanız ektedir.
İsterseniz listboxa çift tıklama ile ekleme veya çıkarma yapabilirsiniz.:cool:
 

Ekli dosyalar

Katılım
9 Ağustos 2009
Mesajlar
208
Excel Vers. ve Dili
Excel 2007
Sayın uzmanım çok teşükker ederim ellerinize sağlık.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın uzmanım çok teşükker ederim ellerinize sağlık.
Dosyada küçük biir değişiklik yaptım.
x değişkeninni integer olrak tanımlamışım.
Bu durumda 32 bin küsuru aştığında listbox1 hata verecekti.
Şimdi durumu düzelttim.
9 numaralı mesajdan dosyayı indirebilirsiniz.:cool:
 
Katılım
9 Ağustos 2009
Mesajlar
208
Excel Vers. ve Dili
Excel 2007
Evren Bey teşekkür ederim. Dosyada gerekliği değişikliği yaptım. Ama şimdide başka bir forma farklı bir fonksiyon katayım dedim. Forma koyduğum bir textbox ile girilen veriye göre arama yapıp ona göre nasıl listboxı filtrelerim diye uğraşıyorum. Formda bu konuyla ilgili verdiğiniz cevapları inceledim ama için içinden çıkamadım. Nasıl yapabilirim yardım edebilirmisiniz? (burada listboxın 3. kolonunun üzerine bir text box koyup textboxa girilen değeri herhangi bir yerinde içeren verileri görüntülemek küçük programıma çok şey katacak :) )
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Evren Bey teşekkür ederim. Dosyada gerekliği değişikliği yaptım. Ama şimdide başka bir forma farklı bir fonksiyon katayım dedim. Forma koyduğum bir textbox ile girilen veriye göre arama yapıp ona göre nasıl listboxı filtrelerim diye uğraşıyorum. Formda bu konuyla ilgili verdiğiniz cevapları inceledim ama için içinden çıkamadım. Nasıl yapabilirim yardım edebilirmisiniz? (burada listboxın 3. kolonunun üzerine bir text box koyup textboxa girilen değeri herhangi bir yerinde içeren verileri görüntülemek küçük programıma çok şey katacak :) )
Dosyanız ektedir.:cool:
Kod:
Private Sub TextBox1_Change()
Dim sut As Byte, sh As Worksheet
Dim i  As Long, sat As Long, x As Long, isim As String
If ComboBox1.ListCount < 1 Then Exit Sub
Set sh = Sheets("Sayfa1")
ListBox1.Clear
sut = ComboBox1.Column(1)
sat = sh.Cells(65536, sut).End(xlUp).Row
If sat < 3 Then Exit Sub
isim = UCase(Replace(Replace(TextBox1.Text, "ı", "I"), "i", "İ")) & "*"
For i = 3 To sat
    If UCase(Replace(Replace(sh.Cells(i, "B").Value & _
    sh.Cells(i, "C").Value, "ı", "I"), "i", "İ")) Like isim Then
        If UCase(sh.Cells(i, sut).Value) = "X" Then
            ListBox1.AddItem
            ListBox1.List(x, 0) = sh.Cells(i, "B").Value
            ListBox1.List(x, 1) = sh.Cells(i, "C").Value
            ListBox1.List(x, 2) = sh.Cells(i, "D").Value * 1
            x = x + 1
        End If
    End If
Next i
End Sub
 

Ekli dosyalar

Katılım
28 Ocak 2017
Mesajlar
61
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
23-09-2020
Merhaba Banada sayfa belirtmeden tüm sayfalara uygulaya bileceğim listbox eklemek istiyorum yardımcı ola bilirmisiniz
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,453
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosya ekleyip yapmak istediğiniz işlemi belirtirseniz yardım almanız kolaylaşır.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
ekli dosyayı sizin için hazırladım.
Seçilen sayfalarda A1:A2 aralığını listeliyor.
 

Ekli dosyalar

Katılım
3 Nisan 2014
Mesajlar
394
Excel Vers. ve Dili
Excel 2019 - Türkçe
Altın Üyelik Bitiş Tarihi
14-04-2021
Büyük veri yığınlarında listboxta additem yöntemi ile veri almayı tavsiye etmiyorum.
Çok ağır kalıyor.
Üstelik 10 sütundan fazla veri alamıyorsunuz.
Rowsource yöntemini veya dizi yöntemini tavsiye ederim.
Bırakın additem'i
Aşağıdaki yöntemide kullanabilirsiniz.:cool:
Kod:
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 3
ListBox1.List = Range("A1:C1").Value
End Sub
Merhaba,

Listbox'da koşula bağlı listeleme yapabilir miyiz?

Mesela A sütununda Geldi, Gelmedi yazıyor. Ben sadece Gelmedi yazanları listelemek istiyorum, nasıl yapabilirim?

Şimdiden teşekkürler.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba,

Listbox'da koşula bağlı listeleme yapabilir miyiz?

Mesela A sütununda Geldi, Gelmedi yazıyor. Ben sadece Gelmedi yazanları listelemek istiyorum, nasıl yapabilirim?

Şimdiden teşekkürler.
Dosyanız ektedir.:cool:
Kod:
Private Sub UserForm_Initialize()
Dim sonsat As Long, sh As Worksheet
ListBox1.ColumnCount = 2
ListBox1.ColumnHeads = True
Sheets("Sayfa1").Select
Set sh = Sheets("SUZ")
ListBox1.RowSource = ""
sh.Range("A:B").ClearContents
Range("A1").AutoFilter
Range("A1").AutoFilter field:=1, Criteria1:="GELMEDİ"
Range("A1").CurrentRegion.Copy sh.Range("A1")
ListBox1.RowSource = "SUZ!A2:B" & sh.Cells(Rows.Count, "A").End(xlUp).Row
End Sub
 

Ekli dosyalar

Üst