Guardar datos de listbox a celda en excel

les pregunto...

¿Qué posibilidad hay de guardar todos los datos que tengo en un ListBox a UNA sola celda de excel?

1 respuesta

Respuesta
1

En el siguiente enlace te dejo un ejemplo programado

http://share.cx.com/pH7QTs

No olvides finalizar la consulta

Hola, Gracias por responder.

mira lo que yo estoy realizando son cotizaciones en VBA, entonces no va a ser solo una la que realice, si no, varias, que pena molestarte tanto, pero que es lo que le debo modificar al código que me enviaste para que:

1) a medida que le de guardar una nueva cotización me copie en la siguiente fila los datos de la ListBox (no en la misma) y asi sucesivamente; o sea la cotización 1 guarde en a1, cotización 2 en a2, cotización 3 en a3...

2) tengo en cotizaciones 4 listbox que son:

listbox1= cantidad

listbox2= producto

listox3= valor unitario

listbox4= valor total

Quiero que al momento de darle clic en guardar cotización me guardaran en las celdas:

listbox1= A1
listbox2= B1
listox3= C1
listbox4= D1

en el momento que realizo este procedimiento, me guarda de la siguiente manera:

A1= contenido de listbox1
B1= contenido de listbox1 mas contenido de listbox2
C1= contenido de listbox1 mas contenido de listbox2 mas contenido de listbox3
D1=contenido de listbox1 mas contenido de listbox2 mas contenido de listbox3 mas contenido de listbox4, o sea, que me acumula todo en lo escrito en los listbox y no solo es contenido de cada uno de los listbox en cada una de las celdas correspondientes.

3) es posible que la información que contenga el listbox sea copiado a la celda correspondiente de manera vertical, o sea, en el código q me enviaste pasa asi: enero-febrero-marzo-abril...

quisiera que pasara asi: enero

febrero

marzo

abril...

CÓDIGO QUE ME ENVIASTE...

For x = 0 To ListBox1.ListCount - 1
lista = lista & "-" & ListBox1.List(x, 0)
Next
lista = Mid(lista, 2, Len(lista) - 1)
Range("K11").value = lista


For x = 0 To ListBox2.ListCount - 1
lista = lista & "-" & ListBox2.List(x, 0)
Next
lista = Mid(lista, 2, Len(lista) - 1)
Range("L11").value = lista


For x = 0 To ListBox3.ListCount - 1
lista = lista & "-" & ListBox3.List(x, 0)
Next
lista = Mid(lista, 2, Len(lista) - 1)
Range("M11").value = lista


For x = 0 To ListBox4.ListCount - 1
lista = lista & "-" & ListBox4.List(x, 0)
Next
lista = Mid(lista, 2, Len(lista) - 1)
Range("N11").value = lista

espero haber sido clara y que me puedas colaborar...

mil y mil gracias...

Utiliza el código como lo has escrito pero la variable lista cambiala de nombre para cada ciclo:

Lista1... lista2...

Hola,

la corrección que me enviaste me funciona perfectamente, ya no acumula los datos de todos los ListBox.

aun no se como debo configurar el código para que:

1) a medida que le de guardar una nueva cotización me copie en la siguiente fila los datos de la ListBox (no en la misma) y asi sucesivamente; o sea la cotización 1 guarde en a1, cotización 2 en a2, cotización 3 en a3...

2) es posible que la información que contenga el listbox sea copiado a la celda correspondiente de manera vertical, o sea, en el código q me enviaste pasa asi: enero-febrero-marzo-abril...
quisiera que pasara asi: enero
febrero
marzo
abril...

CÓDIGO QUE ME ENVIASTE...
For x = 0 To ListBox1.ListCount - 1
lista = lista & "-" & ListBox1.List(x, 0)
Next
lista = Mid(lista, 2, Len(lista) - 1)
espero haber sido clara y que me puedas colaborar nuevamente.

se que para el punto 2, en el código lo que debo cambiar es "-" pero no se por que para que me guarde a la celda de manera vertical...

LuisMondelo...

el punto dos ya lo resolví cambiándole "-" por & vbNewLine &...

me funciona perfecto pero aun sigo con el primer inconveniente...

1) a medida que le de guardar una nueva cotización me copie en la siguiente fila los datos de la ListBox (no en la misma) y asi sucesivamente; o sea la cotización 1 guarde en a1, cotización 2 en a2, cotización 3 en a3...

Gracias

Como supongo que encima de la celda K11, L11... habrá un título lo arregas así:

(Solo pongo el ejemplo de un bucle)

For x = 0 To ListBox1.ListCount - 1
lista = lista & vbnewline & ListBox1.List(x, 0)
Next
lista = Mid(lista, 2, Len(lista) - 1)
Range("K65000").end(xlup).offset(1,0).value = lista

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas