Userform – Listboxtan Listbox`a Öğe Taşıma

[dropcap style=”font-size: 60px; color: #9b9b9b;”] U[/dropcap]serform uzerinde listboxtan listbox`a yukaridaki ornekte goruldugu gibi veri tasima ile ilgili bir ornek yapacagiz, bir cok wizardda bu tarz formlar gormussunuzdur, bununla ilgili bir ornek yaparken ufak nuanslarina deginmeye calisacagim..

 

[quote type=”center”]Oncelikle bir modul acip userformunuzu gostermesi icin bu module giris yapmalisiniz ki bunu butona baglayip formunuzu calistirabilin..[/quote]

 

Bu ornegimizde formumuzun adi frmListBoxTest oldugundan basit bir sekilde frmListBoxTest.show komutu ile userformumuza erisiyoruz..

formumuz uzerine ben ufak bir dongu ile 10`ar tane veri ekleyecegim.. Default Liste 1 ve 2 Ogeleri adlarinda iki listbox`im ve bunlarin uzerinde 10`ar tane giris olmasi icin userform`umun Initialize olayina kodlari giriyorum:

Private Sub UserForm_Initialize()
Dim iCtr As Long
With Me.ListBox1
For iCtr = 1 To 10
.AddItem "Default Liste 1 Ogeleri " & iCtr
Next iCtr
End With
With Me.ListBox2
For iCtr = 1 To 10
.AddItem "Default Liste 2 Ogeleri " & iCtr
Next iCtr
End With
Me.ListBox1.MultiSelect = fmMultiSelectMulti
Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub

Hepsini saga tasimak icin kullandigimiz kodlar:

Private Sub BTN_moveAllRight_Click()
Dim iCtr As Long
For iCtr = 0 To Me.ListBox1.ListCount - 1
Me.ListBox2.AddItem Me.ListBox1.List(iCtr)
Next iCtr
Me.ListBox1.Clear
End Sub

Kodlarimizda gordugunuz gibi buradada bir dongu kullanarak listbox1`in sahip oldugu oge sayisina kadar listbox1 in ogelerini liste 2`ye tasiyoruz ve Listbox 1`i temizliyoruz..

Tek bir veriyi saga tasimak icin kullanabilecegimiz bir kod:

Private Sub BTN_MoveSelectedRight_Click()
Dim iCtr As Long
For iCtr = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(iCtr) = True Then
Me.ListBox2.AddItem Me.ListBox1.List(iCtr)
End If
Next iCtr
For iCtr = Me.ListBox1.ListCount - 1 To 0 Step -1
If Me.ListBox1.Selected(iCtr) = True Then
Me.ListBox1.RemoveItem iCtr
End If
Next iCtr
End Sub

Bu kod daha karmasik gelmsi olabilir fakat ustteki dongumuzden tek farki bir eger formulu daha katilmis durumda olmasi sadece secili olup olmadigina gore tasima yapiyor ve tasidigi veriyi tekrardan list1`den siliyor..

List1`e hepsini tasima ve secilileri tasiam uzerine ayrica yazmak istemiyorum ama ekli dosyadan tekrar bulabilirsiniz, ilk kodlarin sadece terse dondurulmus halidir..

Umarim faydali bir konu olabilmistir, ornek dosyamizi inceleyiniz; hepinizze kolay gelsin..

Yazar: mmustafaaslan

2004 yilindan itibaren ozel bir sirketin finans departmaninda calismaktadir. Kendini excel, visual basic kullaniminda gelistirmis olan yazarimiz; Meslegi geregi SAP konusunda ileri derecede bilgilidir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


2 + 9 =