• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Sayfadan listboxa veri almak

Katılım
12 Kasım 2007
Mesajlar
327
Excel Vers. ve Dili
excel 2003
Forumun Değerli Üyeleri
Aşağıda izah ettiğim ve örnek dosya eklediğim konu için çözümlerinizi bekliyorum.
Saygılarımla

VERİ sayfasındaki verilerden LİSTE sayfasındaki list boxun üzerindeki sütun başlıklarına göre listbox içine aşağı doğru veri sıralamayı gerçekleştirmek istiyorum.
Kodlar LİSTE sayfasına yazılması lazım. Çünkü LİSTE sayfası her açıldığında Veriler sayfasındaki verilerin güncellenerek listbox içinde otomatik olarak listelenmesi gerekiyor.
Ayrıca listbox içinden herhangi bir satıra tıklandığında, tıklanan LİSTBOX veri satırının LİSTE sayfasının 1. satırının A;B;C;D;E sütununa kopyalanması lazım. (Tek satır halinde) Listbox içinden başka bir satıra tıklandığında yine aynı sütundaki eski bilgiler silinip yerine yeni bilgilerin 1. satıra kopyalanması lazım.
 

Ekli dosyalar

Dosyanız ektedir.:cool:
Kod:
Private Sub ListBox1_Click()
Dim k As Byte
If ListBox1.ListCount < 1 Then Exit Sub
For k = 1 To 5
    Sheets("VERİ").Cells(1, k).Value = ListBox1.Column(k - 1)
Next
End Sub

Private Sub Worksheet_Activate()
Dim sh As Worksheet, sat As Long, i As Long, x As Long
Set sh = Sheets("VERİ")
sat = sh.Cells(65536, "C").End(xlUp).Row
ListBox1.Clear
For i = 2 To sat
    ListBox1.AddItem
    ListBox1.List(x, 0) = sh.Cells(i, "A").Value
    ListBox1.List(x, 1) = sh.Cells(i, "C").Value
    ListBox1.List(x, 2) = sh.Cells(i, "D").Value
    ListBox1.List(x, 3) = sh.Cells(i, "L").Value
    ListBox1.List(x, 4) = sh.Cells(i, "G").Value
    x = x + 1
Next i
End Sub
 

Ekli dosyalar

Sayın Evren Gizlen
İlginiz bu kadar hızlı bir şekilde cevap verdiğiniz için çok teşekkür ederim.
Çok güzel olmuş.
Ben listboxu biraz özelliklerini değiştirdim ve listbox içerisindeki başlıklara text yazamadım. Dosyanın yeni halini ekledim.
Ancak sorumun açıklama içinde kırmızı ile renklendirdğim bölümle ilgili herhangi şey göremedim. Sanırım gözünüzden kaçmıştır.
List boxtaki tıklanan verilerin list sayfasında A;B;C;D;E sutunun 2 satırına kopyalanması lazım.
Ayrıca bu list box nesnesine veri aldırmanın additem dışında alternatif bir çözümü varmıdır. Yani sütun genişliklerini sayısı kod içerisinden aldırmak gibi
bildiğim kadarı ile additem ile ancak 10 sütun veri aldırılabiliniyor ilerde sütun sayısını artırmam gerekebilir.
Tekrar ilginizi bekliyorum.
Saygılarımla
 

Ekli dosyalar

Ayrıca listbox içinden herhangi bir satıra tıklandığında, tıklanan LİSTBOX veri satırının LİSTE sayfasının 1. satırının A;B;C;D;E sütununa kopyalanması lazım. (Tek satır halinde) Listbox içinden başka bir satıra tıklandığında yine aynı sütundaki eski bilgiler silinip yerine yeni bilgilerin 1. satıra kopyalanması lazım.

List boxtaki tıklanan verilerin list sayfasında A;B;C;D;E sutunun 2 satırına kopyalanması lazım.
Şimdi bu 2 açıklamnız bir biri ile çelişki içeriyor.Bu gibi durumlarda insanın içinden bir şey yapmak gelmiyor.Bu konuda kesin kararınızı verirseniz bakarım konuya.
Ama lütfen bundan sonra sorularıznızı iyice tasarlayıp sorarsanız bizide uğraştırmazsınız.
Bizde sorulara cevap verirken çelişkili cevaplar versek doğru olurmuydu.Kimse istemez sanırım böyle bir şeyi.O zaman soruyu soranlarda buna özen göstermelidir diye düşünüyorum.:cool:
 
Sayın Evren Gizlen
Çok özür dilerim görmemişim. Soruyu düzgün sorma konusunda çok haklısınız.
Fakat ben hep sonuçları LİSTE sayfasında 1. veya 2. satırında aradığımdan göremiyordum.
Ancak siz de Listbox tıklanınca kopyalanması gereken sonuçları VERİ sayfasına çıkarmışsınız.
Sayfanın farklı olduğunu fark edememişim. Farketsem düzeltebilirdim.
Kusura bakmayın acemiliğimize verin.
Ayrıca 3. mesajda sorduğum soruyu tekrarlamak istiyorum Bu listbox nesnesine veri aldırmanın AddItem dışında başka alternatif bir çözümü varmıdır? Yani sütun genişliklerini, sayısını vesair değerleri kod içerisinden aldırmak gibi. Cevap vermek lütfunda bulunursanız müteşekkir kalırım.
Sizin çok özverili bir insan olduğunuza inanıyorum. İnanın bu kadar soru karşısında bunalmamak işten bile değil.
Saygılarımla
 
Dizi yöntemi ile istediğiniz kadar sütun yapabilirsiniz.FillListRange ilede olur.
Ben dizi yöntemi ile verileri aldım.Bu yöntemle sütun başlıkları olamaz.FllListRange yönetei ilde sütun başlıkları olur ama szin sütunlarınız sıralı gitmiyor.
Dosya ektedir.:cool:
Kod:
Private Sub Worksheet_Activate()
Dim sh As Worksheet, sat As Long, i As Long, myarr()
Set sh = Sheets("VERİ")
sat = sh.Cells(65536, "C").End(xlUp).Row
ReDim myarr(1 To 5, 2 To sat)
ListBox1.Clear
For i = 2 To sat
    ListBox1.AddItem
    myarr(1, i) = sh.Cells(i, "A").Value
    myarr(2, i) = sh.Cells(i, "C").Value
    myarr(3, i) = sh.Cells(i, "D").Value
    myarr(4, i) = sh.Cells(i, "L").Value
    myarr(5, i) = sh.Cells(i, "G").Value
Next i
If sat > 1 Then ListBox1.Column = myarr
End Sub
 

Ekli dosyalar

Sayın Evren Gizlen
Tekrar ilgin için teşekkür ederim.
List box yüksekliği yaklaşık 5 cm içine aldığımız verier ise 1000 satır dolayısı ile list boxta dikey kaydırma çubuğu oluşuyor. Bu şekilde olduğunda listbox a 1000 alıyor fakat 1000. satır list box içerisinde görünmüyor . Ancak imleçle aşağıya en sona yani 1000 satıra inilebiliyor. Sonuçlar da alınıyor. Fakat 1000. satırın görüntülenmeme sebebi ne olabilir?
Saygılarımla.
 
Sayın Evren Gizlen
Tekrar ilgin için teşekkür ederim.
List box yüksekliği yaklaşık 5 cm içine aldığımız verier ise 1000 satır dolayısı ile list boxta dikey kaydırma çubuğu oluşuyor. Bu şekilde olduğunda listbox a 1000 alıyor fakat 1000. satır list box içerisinde görünmüyor . Ancak imleçle aşağıya en sona yani 1000 satıra inilebiliyor. Sonuçlar da alınıyor. Fakat 1000. satırın görüntülenmeme sebebi ne olabilir?
Saygılarımla.
Evet daha önce listbox1.additem metodu yöntemi ile yazmıştık kodu.
Ben onları silerken 1 satırı silmeyi unutmuşum.
Aşağıdaki kırmızı renkli satırı siliniz.:cool:
Kod:
For i = 2 To sat
   [B][COLOR="Red"] ListBox1.AddItem[/COLOR][/B]
    myarr(1, i) = sh.Cells(i, "A").Value
    myarr(2, i) = sh.Cells(i, "C").Value
    myarr(3, i) = sh.Cells(i, "D").Value
    myarr(4, i) = sh.Cells(i, "L").Value
    myarr(5, i) = sh.Cells(i, "G").Value
Next i
 
Geri
Üst