hola de nuevo,
siguiendo con los ListBox, tengo dos listboxes multiselect con 6 columnas
entre los que traspaso registros. Hasta ahora lo estoy haciendo, cn este
codigo (+o-):
Private Sub CommandButton6_Click()
Dim nSel As Long, nCol As Byte
With ListBox1
If .ListCount = 0 Then Exit Sub
For nSel = 0 To .ListCount - 1
If .Selected(nSel) Then
ListBox2.AddItem .List(nSel)
For nCol = 1 To .ColumnCount - 1
With ListBox2
.List(.ListCount - 1, nCol) = ListBox1.List(nSel, nCol)
End With
Next
.Selected(nSel) = False
End If
Next
End With
End Sub
parece funcionar bien, pero me temo que cuando se trate de 'muchos'
registros no sea especialmente rapido.
¿hay alguna forma de traspasar el registro completo sin tener que usar el 2º
bucle? algo parecid a .List = range("cf:cf").value para los rangos, pero que
tome el contenido de todos los campos del listbox1 como si fuera una matriz
para asignarselo al list del 2º?
bueno, mas que nada es una cuestion de aprendizaje, pues supongo que la
forma actual me valdria, combinada con la utilizacion de hojas/filtros en
los casos de demasiados registros, pero a lo mejor hay una forma sencilla de
hacerlo
un saludo y hasta pronto
Ivan
Leer las respuestas