Ciao..

codice:
Private Sub Command1_Click()
Dim matrice() As Integer, I As Integer
I = -1
For n = 0 To List1.ListCount - 1
    If List1.Selected(n) Then
        I = I + 1
        ReDim Preserve matrice(I)
        matrice(I) = n
    End If
Next n
For n = 0 To UBound(matrice)
    List2.AddItem List1.List(matrice(n))
    List1.RemoveItem List1.List(matrice(n))
Next n
End Sub
Con questo codice memorizzi in una matrice i vari index degli item selezionati nel list1 (permettendoti quindi una selezione di più elementi)e li copi nel list2 cancellandoli nel list1. Mi raccomando, List1.multiselect = 1.

Per la seconda domanda cerca di essere più preciso perchè non ho capito proprio tutto..ciao