CopycomboList




Public Sub CopyItem(SourceCtl As Control, _
TargetCtl As Control, _
Optional strMode As String)
On Local Error Resume Next
Dim intItem As Integer
Screen.MousePointer = vbHourglass

With SourceCtl
'identifico il tipo di controllo (ListBox o ComboBox)

If TypeOf SourceCtl Is ListBox Then
'eseguo un ciclo per tutti gli elementi della ListBox

For intItem = .ListCount - 1 To 0 Step -1
'Se l'elemento e' selezionato, o se la modalita di copia e' COPYALL...

If .Selected(intItem) Or InStr(strMode, "COPYALL") Then
'.allora aggiungo l'elemento e il suo ItemData al controllo Target

TargetCtl.AddItem .List(intItem)
TargetCtl.ItemData(TargetCtl.NewIndex) = .ItemData(intItem)
'e se e' indicato il parametro '-', rimuovo l'elemento dal

'controllo Source

If InStr(strMode, "-") = 1 Then .RemoveItem (intItem)
End If
Next
'Copio gli elementi della ComboBox

Else
'eseguo un ciclo per tutti gli elementi della ComboBox

For intItem = .ListCount - 1 To 0 Step -1
'copio gli elementi e i relativi ItemData nel controllo Target

TargetCtl.AddItem .List(intItem)
TargetCtl.ItemData(TargetCtl.NewIndex) = .ItemData(intItem)
'e se e' indicato il parametro '-', rimuovo l'elemento dal

'controllo Source

If InStr(strMode, "-") = 1 Then .RemoveItem (intItem)
Next
End If
End With
Screen.MousePointer = vbDefault
End Sub
Questa semplice routine, copia (o muove) gli elementi
selezionati di una ListBox (o ComboBox) in un altro
controllo ListBox.

'L'uso e' molto semplice, in quanto basta semplicemente

'passare alla routine i nomi dei controlli e la modalita'

'di copia:


'Modalita Azione

'"-" Copia gli elementi selezionati dal controllo

' SourceCtl al controllo TargetCtl

' rimuovendoli dal controllo SourceCtl


'"COPYALL" Copia tutti gli elementi dal controllo

' SourceCtl al controllo

' TargetCtl senza rimuoverli dal controllo SourceCtl

'

'"-COPYALL" Copia tutti gli elementi dal controllo

' SourceCtl al controllo TargetCtl

' rimuovendoli dal controllo SourceCtl

'

'










( copycombolist.html )- by Paolo Puglisi - Modifica del 17/12/2023