• DİKKAT

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

ListBox'dan veri silme

Katılım
26 Ocak 2006
Mesajlar
757
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Kod:
Private Sub ListBox1_Click()
If ListBox1.ListCount < 1 Then Exit Sub
ListBox2.AddItem ListBox1.Value
End Sub

kodu ile ListBox1 den ListBox2 ye veri alıyorum. Aşağıdaki kod ile de ListBox2 ye yanlışlıkla attığım veriyi siliyorum. Ancak ilk veriyi sildikten sonra aynı satıra denk gelen 2. veriyi silmek için tıkladığımda silmiyor seçiyor. Bunu yapmaması için aşağıdaki kodu nasıl düzenlemem gerekiyor?

Kod:
Private Sub ListBox2_Click()
On Error Resume Next
ListBox2.RemoveItem ListBox2.ListIndex
End Sub
 
Merhaba..

Bu şekilde deneyiniz..:

Kod:
for i= ListBox2.listcount - 1 to 0 step -1 
    if ListBox2.selected(i) then ListBox2.removeitem i 
next i


Düzenleme..: Yeni fark ettim; soruyu Access olarak algılamıştım ama Excel için de aynı mantık olması gerekir..
 
ListBox da uzman olan arkadaşlardan bir çözüm yokmu acaba...
 
Yardımcı olmakta ısrar ediyorum.. ;)

Bu prosedürü kod sayfasına yerleştiriniz..:

Kod:
Private Sub RemoveItem()
  With ActiveControl
    If .Selected(.ListIndex) Then .RemoveItem .ListIndex
  End With
End Sub

Liste kutusunun (Listbox2) MouseUp (Fare Tuşu Bırakılırken) olayında kullanınız..:

Kod:
Private Sub ListBox2_MouseUp(ByVal Button As Integer, _
         ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
RemoveItem
End Sub
 
Yardımcı olmakta ısrar ediyorum.. ;)

Bu prosedürü kod sayfasına yerleştiriniz..:

Kod:
Private Sub RemoveItem()
  With ActiveControl
    If .Selected(.ListIndex) Then .RemoveItem .ListIndex
  End With
End Sub

Liste kutusunun (Listbox2) MouseUp (Fare Tuşu Bırakılırken) olayında kullanınız..:

Kod:
Private Sub ListBox2_MouseUp(ByVal Button As Integer, _
         ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
RemoveItem
End Sub

:) Compile Error : Sub or Function or Defined hatası verdi. Bence sonuca çok yaklaştın. Bana kafayı yedirtti.
 
Prosedürde hata olduğunu düşünmüyorum.. Test ederek önerdim.. Uygulamada sıkıntı yaşamış olabilirsiniz.. Basit bir dosya eklerseniz üstünde deneyebiliriz..
 
kodu ile ListBox1 den ListBox2 ye veri alıyorum. Aşağıdaki kod ile de ListBox2 ye yanlışlıkla attığım veriyi siliyorum. Ancak ilk veriyi sildikten sonra aynı satıra denk gelen 2. veriyi silmek için tıkladığımda silmiyor seçiyor. Bunu yapmaması için aşağıdaki kodu nasıl düzenlemem gerekiyor?
Merhaba.
Aşağıdaki gibi deneyin.

Kod:
Private Sub ListBox2_Click()
On Error Resume Next
ListBox2.RemoveItem ListBox2.ListIndex
If ListBox2.ListIndex > 0 Then ListBox2.Selected(0) = True
If ListBox2.ListIndex = 0 Then ListBox2.Selected(0) = False

End Sub
 
Kod:
Private Sub ListBox1_Click()
If ListBox1.ListCount < 1 Then Exit Sub
ListBox2.AddItem ListBox1.Value
End Sub

kodu ile ListBox1 den ListBox2 ye veri alıyorum. Aşağıdaki kod ile de ListBox2 ye yanlışlıkla attığım veriyi siliyorum. Ancak ilk veriyi sildikten sonra aynı satıra denk gelen 2. veriyi silmek için tıkladığımda silmiyor seçiyor. Bunu yapmaması için aşağıdaki kodu nasıl düzenlemem gerekiyor?

Kod:
Private Sub ListBox2_Click()
On Error Resume Next
ListBox2.RemoveItem ListBox2.ListIndex
End Sub

Sayın bmutlu966,

Listbox'da DblClick olayını kullanabilirsiniz.

Kod:
Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If ListBox2.ListIndex < 0 Then: Exit Sub
ListBox2.RemoveItem ListBox2.ListIndex
End Sub
 
Taruz arkadaşım basit bir dosya hazırladım. Çalıştırdığınızda sizin kodlar devrede olacak ve hata verecek. Ben listBox2 için yazdığım kodları da text olarak ekledim.
 

Ekli dosyalar

Son düzenleme:
Basit bir dosya hazırladım. Çalıştırdığınızda sizin kodlar devrede olacak ve hata verecek. Ben listBox2 için yazdığım kodları da text olarak ekledim.

Aslında kodların hepsi iş yapıyor burada listbox2 yi kullanırken Click (birkere tıklama)olayı yerine DblClick (iki kere tıklama) kullanmak daha doğrusu


Kod:
Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If ListBox2.ListIndex >= 0 Then ListBox2.RemoveItem ListBox2.ListIndex
End Sub
 
Arkadaşlar hepinizin ilgisi için teşekkürler. Husgvarna arkadaşımızın kodları duble click olayına girmeden sorunu çözdü. Çok teşekkürler.
 
Geri
Üst