** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - ListBox de varias columnas llevar valores
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoListBox de varias columnas llevar valores

 Responder Responder
Autor
Mensaje
Ruchigol Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 09/Noviembre/2011
Localización: España
Estado: Sin conexión
Puntos: 41
Enlace directo a este mensaje Tema: ListBox de varias columnas llevar valores
    Enviado: 17/Febrero/2012 a las 13:16
Hola!!!
Estoy probando como puedo hacer a partir de un listbox con 3 columnas de datos.
 
Quiero pasar estos datos a una hoja excel y colocarlos por orden es decir, la primera fila que marque en el list box se pegara en tres celdas consecutivas dentro de la misma fila (por ejemplo rango U5:W5), la siguiente que marque en la siguiente fila(por ejemplo U6:W6) y asi sucesivamente...
 
He probado con este codigo, pero hago mal el bucle For...Next, porque marco una fila y me la pega donde quiero pero en vez de pegarme una sola vez con el primer valor me hace todo el bucle y me pega el mismo valor 100 veces, con esta forma tambien solo paso el valor de la primera columna de la listbox pero en verdad mi listbox tiene 3 columnas diferentes y probe pero no soy capaz de pasar mas que la primera columna del listbox. Mi objetivo seria pasar los valores por orden segun voy elegiendo con un rango maximo de (U5:W105)
 
Este es mi codigo, fue casi la unica informacion que encontre por internet, pero no es nada util
 
Private Sub ListBox1_Click()
Dim j As Integer
Sheets("DRAFT").Select
For j = 0 To 100 Step 1
Cells(5 + j, 21).Select
ActiveCell.FormulaR1C1 = ListBox1
Next j
End Sub
 
Perdon por mi poca idea, pero gracias a vuestra ayuda estoy consiguiendo hacer este trabajo
 
Muchas gracias
Arriba
Ruchigol Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 09/Noviembre/2011
Localización: España
Estado: Sin conexión
Puntos: 41
Enlace directo a este mensaje Enviado: 17/Febrero/2012 a las 16:33
Sigo mirando esto y aun no encontre una solucion, pero tengo una idea que quizas pueda resolver el problema...
Mi idea consiste en guardar los valores de la listbox solo cuando se pulse un bottom... El codigo seria algo que:
 
Private Sub ListBox1_Click()
Dim j As Integer
Sheets("DRAFT").Select
Cells(5 + j, 21).Select
ActiveCell.FormulaR1C1 = ListBox1
If CommandButton3_Click = True Then 'Aqui es donde necesito la ayuda quiero como hacer un if, en el cual al pulsar el boton (CommandButton3), me pase el valor de la listbox a la celda que le corresponda empezando por cells(5,21)
j = j + 1
End If
Sheets("START").Select
End Sub
 
 
Arriba
Ruchigol Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 09/Noviembre/2011
Localización: España
Estado: Sin conexión
Puntos: 41
Enlace directo a este mensaje Enviado: 17/Febrero/2012 a las 17:20
Ya lo tengo, despues de un buen tiempo, era una tonteria... pero mi poca idea sobre esta programacion... funciona lo que quiero si defino una variable de contador tal que "c"
Dim c as Integer
 
En la programacion del boton hago:
 
Private Sub CommandButton3_Click()
c = c + 1
 
Y en la codigo de la ListBox:
 
Private Sub ListBox1_Click()
Sheets("DRAFT").Select
Cells(5 + c, 21).Select
ActiveCell.FormulaR1C1 = ListBox1
Sheets("START").Select
End Sub
 
Pero como habia dicho en el primer mensaje mi ListBox consta de 3 columnas de datos, como puedo copiar las tres no solo la primera como estoy haciendo, la 2 columna de la listbox me gustaria pegarla en Cells(5+c,22) y la tercera en cells(5+c,23), es decir de forma consecutiva..
 
Muchas gracias
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5593
Enlace directo a este mensaje Enviado: 17/Febrero/2012 a las 18:04
Quizás con este ejemplo:
 
Private Sub CommandButtonOK_Click()
  Dim fila&
  For fila = 1 To Me.ListBox1.ListCount
    Sheets("Hoja2").Cells(fila, 1).Value = Me.ListBox1.List(fila - 1, 0)
    Sheets("Hoja2").Cells(fila, 2).Value = Me.ListBox1.List(fila - 1, 1)
    Sheets("Hoja2").Cells(fila, 3).Value = Me.ListBox1.List(fila - 1, 2)
  Next fila
End Sub
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
Ruchigol Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 09/Noviembre/2011
Localización: España
Estado: Sin conexión
Puntos: 41
Enlace directo a este mensaje Enviado: 19/Febrero/2012 a las 21:18
No entiendo muy bien tu ejemplo, lo he intentado acoplar al mio, pero no he logrado nada...
Resolvi el problema con la funcion =buscarv() en celdas excel pero sin utilizar VBA... yo preferia utilizar VBA porque el problema de esta funcion es cuando dos terminos de busqueda se llaman igual se queda siempre con el primero q encuentra...

Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5593
Enlace directo a este mensaje Enviado: 20/Febrero/2012 a las 00:40
El ejemplo toma los datos de un cuadro de lista de 3 columnas y los escribe en las columnas A, B y C.
 
Yo no he pretendido hacerte el trabajo. Lo que he intentado es que entiendas como se leen los datos de las diferentes columnas del cuadro de lista, y que sabido eso lo adaptes a tu caso. Si no entiendes el ejemplo, me temo que estás muy verde para abordar el tema, sin antes aclarar un poco más las ideas.
 
En la ayuda de Excel (esa gran desconocida) tienes ejemplos que quizás te aclaren mejor de lo que yo lo hago. He conocido muchos casos de usuarios que no suelen apoyarse en la ayuda y te aseguro que es una herramienta muy valiosa.
 
 
 
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
Ruchigol Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 09/Noviembre/2011
Localización: España
Estado: Sin conexión
Puntos: 41
Enlace directo a este mensaje Enviado: 20/Febrero/2012 a las 17:32
ok, gracias por la aclaracion, ahora si q he comprendido como lo has hecho....
la verdad es que estoy muy verde y necesito mucha practica para mejorar y quizas tomarme mas tiempo para buscar informacion como en la ayuda excel.. se puede dar por cerrado el hilo
 
Muchas gracias por tu ayuda
 
Un saludo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable