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

(copycombolist.html)- by Paolo Puglisi - Modifica del 25/3/2019