Trabajo con ListBox

10/11/2005 - 23:32 por Jorge1999 | Informe spam
Buen día,

Tengo una base de datos como esta

A B C D
NUM PROD TALLA MARCA
1 ZAPATO 10 ADIDAS
TENIS 12 ADIDAS
BOTA 8 FLEXI
2 TACON 2 FLEXI

Donde el contenido entre los números 1 y el números 2 varían de 0 a
36.
Quiero llenar un Listbox con el contenido de las celdas B,C y D.

Alguien me puede ayudar ?
De antemano, gracias.
Un saludo.
Jorge

Preguntas similare

Leer las respuestas

#6 Jorge1999
12/11/2005 - 19:42 | Informe spam
Héctor,

En la columna A hay los números 1, 2, 3, etc y lo que pretendo es
contar las celdas vacías (una vez) entre el 1 y el 2 o el 2 y el 3 que
por lo general serán diferentes.

Un saludo.
Jorge.
Respuesta Responder a este mensaje
#7 Héctor Miguel
13/11/2005 - 01:49 | Informe spam
hola, Jorge !

creo que no entendi +/- completamente tus exposiciones, y hay algunos detalles que -creo- siguen 'perdidos' :-(
si alguno de mis supuestos es equivocado... comentas ?

supuestos: en la 'Hoja1' tienes:
-> un listado con los numeros de remisiones en la columna 'A' [los numeros NO son 'consecutivos']
-> en las columnas 'B, C y D' has puesto los productos/modelos, tallas y marcas del calzado 'remisionado'
-> en un formulario necesitas llenar un listbox con el calzado correspondiente a cada remision [filas variables]

suponiendo que el numero de la remision [en el formulario] se toma de un textbox
y que el llenado se realiza 'a solicitud' [p.e. pulsando un commandbutton]... prueba con las siguientes lineas...
en el modulo de codigo del formulario [en el evento '_click' del commandbutton] ==Private Sub CommandButton1_Click()
Dim Remision As Range, Fila1 As Long, Fila_n As Long, Fila_x As Long
ListBox1.Clear
With Worksheets("Hoja1")
On Error Resume Next
Set Remision = .Columns("a").Find(TextBox1, .[a1], xlValues, xlWhole, xlByRows, xlNext)
On Error GoTo 0
If Remision Is Nothing Then MsgBox "Remision no existe !!!": Exit Sub
Fila1 = Remision.Row: Fila_n = .Range("b" & .Rows.Count).End(xlUp).Row
Fila_x = Remision.End(xlDown).Row: If Fila_x > Fila_n Then Fila_x = Fila_n
ListBox1.List = .Range(.Cells(Fila1, 2), .Cells(Fila_x - 1 - (Fila_x = Fila_n), 4)).Value
End With
Set Remision = Nothing
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#8 Jorge1999
15/11/2005 - 16:11 | Informe spam
Héctor,

Muchas gracias por tu apoyo.
De hecho no te comenté que el número de la columna A está almacenado
en un Combo Box y de ahí con el ListIndex saco el lugar donde estamos.

Lo que requería era encontrar el número de renglones vacíos para
trabajar con for i = 0 to IsNot empty...
Encontré una solución.

Set RANGO = Worksheets("REPORTEREM").Cells(1, 1).CurrentRegion
WhereAreWe = ComboBox1.ListIndex
NúmFila = WhereAreWe + 2
With Worksheets("REPORTEREM")
Set Jorge = .Range("A" & NúmFila & "", .Range("A" & NúmFila &
"").End(xlDown))
End With
Juan = WorksheetFunction.CountBlank(Jorge)
Pedro = Juan
With Worksheets("REPORTEREM")
For j = 1 To Pedro
REMISION.ListBox1.AddItem RANGO.Cells(NúmFila + j, 4)
REMISION.ListBox1.List(j, 1) = RANGO.Cells(NúmFila + j, 5)
REMISION.ListBox1.List(j, 2) = Format(RANGO.Cells(NúmFila + j,
6), "#,##0.000")
REMISION.ListBox1.List(j, 3) = RANGO.Cells(NúmFila + j, 7)
Next
End With

Muchas gracias por tu apoyo.
Un saludo.
Jorge Cué
Respuesta Responder a este mensaje
#9 Jorge1999
15/11/2005 - 17:05 | Informe spam
Héctor,

Te paso lo que tengo, pero no funciona con tu código.
A B C D
num sku prod um
1 5010 Mort tn
5011 gris ton
5012 Blanco tonel
5013 Blanco exp tonela
5014 gris exp tonalad
5015 gris 25 kg tonelada
2 1300 Mort tn
1301 gris ton
1302 Blanco tonel
3 5000 Mort tn
5001 gris ton
5002 Blanco tonel
5003 Blanco exp tonela
5004 gris exp tonalad
5005 gris 25 kg tonelada
5006 blanco 25 kg toneladas
5007 blanco 50 kg toneladas1

El contenido de la columna A ya lo tengo en un ComboBox1
Lo que quiero es que lo que haya en la columna A dependiendo del
listindex, por ejemplo el número dos tiene solo tres columnas que le
"pertenecen" que es lo que quiero meter en el ListBox.

Un saludo y muchísimas gracias.
Jorge Cué



Jorge1999 ha escrito:

Héctor,

Muchas gracias por tu apoyo.
De hecho no te comenté que el número de la columna A está almacenado
en un Combo Box y de ahí con el ListIndex saco el lugar donde estamos.

Lo que requería era encontrar el número de renglones vacíos para
trabajar con for i = 0 to IsNot empty...
Encontré una solución.

Set RANGO = Worksheets("REPORTEREM").Cells(1, 1).CurrentRegion
WhereAreWe = ComboBox1.ListIndex
NúmFila = WhereAreWe + 2
With Worksheets("REPORTEREM")
Set Jorge = .Range("A" & NúmFila & "", .Range("A" & NúmFila &
"").End(xlDown))
End With
Juan = WorksheetFunction.CountBlank(Jorge)
Pedro = Juan
With Worksheets("REPORTEREM")
For j = 1 To Pedro
REMISION.ListBox1.AddItem RANGO.Cells(NúmFila + j, 4)
REMISION.ListBox1.List(j, 1) = RANGO.Cells(NúmFila + j, 5)
REMISION.ListBox1.List(j, 2) = Format(RANGO.Cells(NúmFila + j,
6), "#,##0.000")
REMISION.ListBox1.List(j, 3) = RANGO.Cells(NúmFila + j, 7)
Next
End With

Muchas gracias por tu apoyo.
Un saludo.
Jorge Cué
Respuesta Responder a este mensaje
#10 Héctor Miguel
16/11/2005 - 06:49 | Informe spam
hola, Jorge !

Te paso lo que tengo, pero no funciona con tu codigo...
El contenido de la columna A ya lo tengo en un ComboBox1
Lo que quiero es que lo que haya en la columna A dependiendo del listindex
por ejemplo el numero dos tiene solo tres columnas que le "pertenecen" que es lo que quiero meter en el ListBox



-> si el contenido de la columna A lo tienes ya en un ComboBox1 [y mi supuesto era un TextBox1]...
solo cambia en el codigo propuesto dos cosas...
1) mueve el codigo al evento '_change' del combobox1 y...
2) sustituye en el codigo propuesto la referencia al TextBox1 -> por -> ComboBox1 :))

por si las dudas... te lo paso al final del presente ;)
saludos,
hector.

en el modulo de codigo del formulario ==Private Sub ComboBox1_Change()
Dim Remision As Range, Fila1 As Long, Fila_n As Long, Fila_x As Long
ListBox1.Clear
With Worksheets("ReporteREM")
On Error Resume Next
Set Remision = .Columns("a").Find(ComboBox1, .[a1], xlValues, xlWhole, xlByRows, xlNext)
On Error GoTo 0
If Remision Is Nothing Then MsgBox "Remision no existe !!!": Exit Sub
Fila1 = Remision.Row: Fila_n = .Range("b" & .Rows.Count).End(xlUp).Row
Fila_x = Remision.End(xlDown).Row: If Fila_x > Fila_n Then Fila_x = Fila_n
ListBox1.List = .Range(.Cells(Fila1, 2), .Cells(Fila_x - 1 - (Fila_x = Fila_n), 4)).Value
End With
Set Remision = Nothing
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida