listboxt dan combobox a seçili verilerin aktarılması

mtl

Katılım
25 Ekim 2005
Mesajlar
63
Merhabalar,

Bir userform üzerine listbox ım var ve bu listbox da bir isim listem var. Ben bu listbox da yaptığım seçimlerin (çoklu seçim) , başka bir userform üzerindeki combobox a aktarmak istiyorum. Bu işlemi nasıl gerçekleştirebilirim.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Küçük bir örnek hazırladım. Kendi dosyanıza uyarlamaya çalışın.
 

mtl

Katılım
25 Ekim 2005
Mesajlar
63
Sn. hamitcan teşekkür ederim sorunum çözüldü.

Ekte bir dosya gönderiyorum sürekli hata mesajı alıyorum. Gözümden kaçan bir yer mi var acaba?

Sağ ok butonuna bastığımda, seçili isimler sağdaki listbox a geçecek. Sol ok butonuna bastığımda ise seçili isimlerin silinmesini istiyorum ama silinmiyor ve hata mesajı alıyorum.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
İlgili kodu aşağıdaki şekilde değiştirin. Yalnız şunu belirtmek isterim; kod şimdilik doğru çalışıyor gibi görünüyor ama bir satırda(If ListBox2.Selected(d) = True Then) hata verdi. Hatanın nerden kaynaklandığını bulamadım. O yüzden (On Error GoTo CIK) satırını ekledim. Sitede bilen arkadaşlar mutlaka çıkacaktır. İsterseniz farklı çözümler için konuyu açık bırakalım.

Private Sub CommandButton2_Click()
'sil
On Error GoTo CIK
Dim c, d As Integer
c = ListBox2.ListCount - 1
For d = 0 To c
If ListBox2.Selected(d) = True Then

ListBox2.RemoveItem d
d = d - 1
End If
Next d
CIK:
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
ama bir satırda(If ListBox2.Selected(d) = True Then) hata verdi. Hatanın nerden kaynaklandığını bulamadım.
Hatanın sebebi; Silinen satır nedeniyle listboxun satır sayısıda azalacaktır. Buda döngüdeki değişkenin listboxun satır sayısından fazla bir değer almasına neden olacaktır. Çözüm döngüyü tersten çalıştırmaktır.

Kod:
Private Sub CommandButton2_Click()
Dim c, d As Integer
c = ListBox2.ListCount - 1
For d = c To 0 Step -1
If ListBox2.Selected(d) = True Then
ListBox2.RemoveItem d
End If
Next d
End Sub
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Teşekkürler leventm, bu noktayı kaçırmışım.
 
Üst