Pasar datos de un listbox a otro del mismo formulario

Tengo un formulario con dos listbox, uno (listbox1) se carga con condición, pero ahora necesito pasar todos los datos al listbox2, pero juntos, es decir, sin seleccionar fila.

2 respuestas

Respuesta
1

Visita:
https://www.youtube.com/@CursosDeExcelyMacros
---

No entiendo a qué te refieres con "sin seleccionar fila", puedes explicarlo con imágenes.

----

Cursos de Excel:

https://www.youtube.com/watch?v=w7MYL3wDgH4&t=3s

https://www.youtube.com/watch?v=dy9w9zbkCaw&t=644s

https://www.youtube.com/watch?v=7Xhs04vhrtg&t=188s

---

Cursos de Macros:

https://www.youtube.com/watch?v=PupmVvM16-8&t=1s

https://www.youtube.com/watch?v=f_x8pstpNqc&t=3s

https://www.youtube.com/watch?v=5k0szqErdXg&t=689s

---

Sal u dos Dante Amor

Este es el código que tengo, pero necesito que me pase todo junto, no de uno en uno.

Private Sub CommandButton1_Click()
 If ListBox1.ListIndex = -1 Then Exit Sub
   ListBox2.AddItem
 For i = 0 To ListBox1.ColumnCount - 1
   ListBox2.List(ListBox2.ListCount - 1, i) = ListBox1.List(ListBox1.ListIndex, i)
 Next
End Sub
Respuesta
1

Puedes utilizar la instrucción que pasa toda la lista, pero es posible que tengas problemas de formato, dependiendo del contenido de la lista. Tendrías luego que asignar el formato a cada columna diferente de texto.

Private Sub CommandButton1_Click()
    ListBox2.List = ListBox1.List      'ver formatos en la imagen 
End Sub

Si este es tu caso, quizás sea mejor pasar fila por fila y col por col ajustando formatos, todo en el mismo momento.

Private Sub CommandButton2_Click()     'Para al modelo de la imagen
'por cada fila
For x = 0 To ListBox1.ListCount - 1
    ListBox2.AddItem
    'por cada columna
    For i = 0 To ListBox1.ColumnCount - 1
        If x = 0 Then    'la fila de títulos no necesita formato
            ListBox2.List(ListBox2.ListCount - 1, i) = ListBox1.List(x, i)
        Else
            If i = 1 Then  'col 1 tiene formato fechas
                ListBox2.List(ListBox2.ListCount - 1, i) = Format(ListBox1.List(x, i), "dd-mm-yy")
            ElseIf i = 3 Then  'col 3 tiene formato moneda
                 ListBox2.List(ListBox2.ListCount - 1, i) = Format(ListBox1.List(x, i), "$ ##0.00")
            Else     'sin formatos
                ListBox2.List(ListBox2.ListCount - 1, i) = ListBox1.List(x, i)
            End If
        End If
    Next i
Next x
End Sub

En mi ejemplo tengo una tabla de títulos, por eso omito el control de formatos cuando x = 0.

http://aplicaexcel.com/manuales * Ya comenzó la promoción por Fin de Año !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas