VBA - Agregar 12 columnas de un listbox a otro listbox

11 envíos / 0 nuevos
Último envío
Jesus Espinoza
Imagen de Jesus Espinoza
Offline
última acción: Hace 4 años 6 meses
Nivel 1 - 200 puntos
alta: 02/03/2016 - 02:42
Puntos: 305
VBA - Agregar 12 columnas de un listbox a otro listbox

Buenos Dias,

Tengo un codigo que filtra data de 12 columnas desde una hoja a un listbox, loq ue deseo saber es que si hay alguna forma de pasar la misma cantidad a otro listbox de otro user form. tengo entendido que maximo sse puede es 10 columnas, indague y me dijeron que se puede con un array. ¿me podrian ayudar con este problema?

Adjunto mi archivo.

Saludos,

 

Jesus

 

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 horas 51 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10690
Un array en Excel también es

Un array en Excel también es un rango de celdas, así que puedes copiar los datos a unas celdas y luego utilizarlas como origen del listbox.

Mira estos otros temas del foro con problemas parecidos: 

Listbox con más de 10 columnas http://www.necesitomas.com/listbox-mas-10-columnas

Listbox con 14 columnas http://www.necesitomas.com/listbox-14-columnas

 

------
Ya sé Excel, pero necesito más.

Jesus Espinoza
Imagen de Jesus Espinoza
Offline
última acción: Hace 4 años 6 meses
Nivel 1 - 200 puntos
alta: 02/03/2016 - 02:42
Puntos: 305
Un array en Excel también es

Estimado Paco Megia,

Ya habia revisado esos links antes de hace rmi pregunta, sin embargo eso es para filtrar de una hoja 12 hata 14 columnas si lo tengo, mi tema es que quiero hacer una facturacion el cual luego filtrar la data de 14 o 12 columnas a un listbox, este se copie o desagregue en el mejor de los casos, los mismos items seleccionados en el previo listbox a otro listbox en otro user form, es posible hacerlo de la misma forma como si fuese una hoja?

 

Saludos,

 

Jesus

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 horas 51 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10690
Copia los datos seleccionados

Copia los datos seleccionados a un rango auxiliar en una hoja y luego utiliza ese rango como origen de la lista.

Para esto tienes que valerte de la propiedad Selected del listbox

por ejemplo algo así

Private Sub CommandButton1_Click()

'www.necesitomas.com

    Dim i, j, contador

    Const Hoja_auxiliar = "Auxiliar"

    Const rangoauxiliar = "A1"

    contador = 0

    ' borramos el rango auxiliar

    Worksheets(Hoja_auxiliar).Range(rangoauxiliar).CurrentRegion.Delete

    With Me.ListBox1

    For i = 0 To .ListCount - 1

        If .Selected(i) = True Then

            For j = 1 To .ColumnCount

             'escribimos en el rango auxiliar siguiendo la misma estructura de filas y columnas

             Worksheets(Hoja_auxiliar).Range(rangoauxiliar).Offset(contador, j - 1) = .List(i, j - 1)

            Next

            contador = contador + 1

        End If

    Next

    'redefinimos el origen de la lista de destino

    Me.ListBox2.RowSource = Worksheets(Hoja_auxiliar).Range(rangoauxiliar).CurrentRegion.Address

    End With

 

End Sub

Adjunto archivo de ejemplo

AdjuntoTamaño
File pasardatosdeunlistboxaotro.xlsm24.49 KB

 

------
Ya sé Excel, pero necesito más.

Jesus Espinoza
Imagen de Jesus Espinoza
Offline
última acción: Hace 4 años 6 meses
Nivel 1 - 200 puntos
alta: 02/03/2016 - 02:42
Puntos: 305
Copia los datos seleccionados

Que tal Paco,

Si lo estoy revisando, te aviso cualquier otra duda, pero veo que ya esta solucionado. igual te aviso y o si no doy por solucionado el problema.

Gracias

Jesus Espinoza
Imagen de Jesus Espinoza
Offline
última acción: Hace 4 años 6 meses
Nivel 1 - 200 puntos
alta: 02/03/2016 - 02:42
Puntos: 305
Copia los datos seleccionados a otro userform

Que tal Paco,

Ya he probado adherir ese codigo a mi sistema, sin embargo no puedo hacer que copie al otro listbox del otro userfrom, me sale error en esta sentencia:

Private Sub btnCopiar_Click()

    Dim i, j, contador, miarray()

    Const Hoja_auxiliar = "Auxiliar"

    Const rangoauxiliar = "A1"

    

    contador = 0

    ' borramos el rango auxiliar

    Worksheets(Hoja_auxiliar).Range(rangoauxiliar).CurrentRegion.Delete

    With Me.ListBox1

    For i = 0 To .ListCount - 1

        If .Selected(i) = True Then

            

            For j = 1 To .ColumnCount

             'escribimos en el rango auxiliar siguiendo la misma estructura de filas y columnas

             Worksheets(Hoja_auxiliar).Range(rangoauxiliar).Offset(contador, j - 1) = .List(i, j - 1) <----- aca me pinta de amarillo

            Next

            contador = contador + 1

        End If

    Next

    'redefinimos el origen de la lista de destino

    Me.ListBox1.RowSource = Worksheets(Hoja_auxiliar).Range(rangoauxiliar).CurrentRegion.Address

    

    End With

End Sub

 

Saludos,

 

Gracias

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 horas 51 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10690
¿Qué error?Copia el mensaje

¿Qué error?

Copia el mensaje de error o adjunta una captura de pantalla.

 

 

------
Ya sé Excel, pero necesito más.

Jesus Espinoza
Imagen de Jesus Espinoza
Offline
última acción: Hace 4 años 6 meses
Nivel 1 - 200 puntos
alta: 02/03/2016 - 02:42
Puntos: 305
¿Qué error?Copia el mensaje

Que tal Paco Megia,

Seguro piensas que tu codigo esta mal, no me refiero a eso tu codigo funciona perfectamente, si lo adhiero a otro listbox que esta en el mismo Formulario, sin embargo deseaba adherirlo a un listboxde otro userform, que al llamar al formulario principal este al filtrar la data que esta en una hoja de excel copiar un lisxbox y al selecionarlas las copie a otro listbox de otro Formulario.

Espero me haya hecho entender, ese error que te marco es porque no copia al otro listbox del otro userform.

Saludos,

Jesus

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 horas 51 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10690
Mira a ver si te deja

Mira a ver si te deja manipular el listbox indicando a qué formulario pertenece, me refiero que cuando estás trabajando con dos formularios distintos, desde el código de uno de ellos debes indicar la "ruta" completa hasta el segundo formulario para que etienda a qué te refieres

Userform1.ListBox1

ElOtroFormulario.ElOtroListBox

Cuando estás dentro del código de un formulario y te refieres a los controles de ese mismo formulario no hace falta poner el nombre del formulario, porque por defecto interpreta que se refiere a sí mismo. También puedes referirte al propio formulario con ME (así es como está en el ejemplo)

Me.ListBox1

Comprueba si con el nombre del formulario funciona.

 

 

------
Ya sé Excel, pero necesito más.

Jean Pierre McAlchez (no verificado)
Imagen de Jean Pierre McAlchez
No me sale me como me dices, me puedes ayudar

Hol intente lo que me comentaste pero no me sale, me puedes ayudar, mi número es +51 951358178 y mi correo es jeanpierrealmeyda@gmail.com 

Cron
Imagen de Cron
Offline
última acción: Hace 1 mes 1 semana
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12715
¿De verdad crees que te van a

¿De verdad crees que te van a llamar a Perú sin ningún beneficio a cambio?

Por cierto, suerte con el spam en tu correo.

 

Un saludo

 

P.D. Seguro que si escribes por aquí lo que has hecho exactamente y por qué no te funciona exactamente, alguien te ayudaría.