Propiedades del listbox

14/02/2005 - 11:55 por Adolfo | Informe spam
Hola gente,

Tengo un formulario con un listbox en el que necesito que me aparezca un
rango de datos. Hasta aqui no hay problema, lo pongo en la propiedad
RowSource y listo, el problema surge cuando no quiero que se vea el rango
completo, sino determinadas columnas. ¿Cómo se puede hacer para que por
ejemplo de un rango de 10 columnas solo se vea la 1, la 3 y la 7?

Y ya que estamos les comento lo que quiero hacer, que seguro me pueden dar
ideas, lo que necesito es que dentro de un formulario pueda mostrar todos
los registros de un rango de datos que cumplan unas determinadas
condiciones. A mi se me ha ocurrido hacerlo con un listbox, aunque me
gustaría mas que quedase con una estructura de celdas, eso si, no tengo ni
idea que como voy a filtrar los datos que no cumplan las condiciones
deseadas, la única idea es filtrar previamente los datos y mostrar
posteriormente los datos en el listbox. ¿Alguna idea? Se aceptan
sugerencias.

Un saludo y gracias por anticipado

Adolfo

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
14/02/2005 - 20:34 | Informe spam
hola, Adolfo !

... un listbox en el que necesito... un rango de datos... no... el rango completo, sino determinadas columnas.
... mostrar... los registros... que cumplan unas determinadas condiciones.
... me gustaria mas que quedase con una estructura de celdas
... la unica idea es filtrar previamente los datos y mostrar posteriormente... en el listbox.
¿Alguna idea? Se aceptan sugerencias.



- para que quedase 'como una estructura de celdas'... [en principio] 'tendria que' ser un rango de celdas -?-
- para filtrar previamente los datos, una 'estructura' como la siguiente [p.ej.]
en el modulo de codigo del formulario [algun evento o procedimiento 'aparte' o... -???]
Dim Celda As Range
With ListBox1
For Each Celda In Range("pon aqui tu rango de datos")
If Celda = "pon aqui la condicion" Then .AddItem Celda
Next
End With

[seguamente] sera necesaria alguna prevencion/correccion de [posibles] errores
y/o... modificaciones 'menores/mayores' segun las 'determinadas condiciones'
y/o... mover las instrucciones a algun otro evento [o tipo de modulo]
... [etc.]

creo que [con los datos que proporcionas] podemos empezas por probar lo anterior :))
saludos,
hector.
Respuesta Responder a este mensaje
#2 Adolfo
15/02/2005 - 12:51 | Informe spam
Hola Hector,

Antes de nada, gracias por responder. A lo que me referia con que tuviese
estructura de celdas es que cada dato estuviese dentro de un cuadrado, que
tuviese bordes, (una celda) no como en un listbox, pero bueno, eso es lo
menos importante.

La solución que me planteas me parece bastante buena pero claro solo me
funciona para un rango de m filas y 1 columna. El rango que yo quiero
mostrar esta en un rango definido dentro de la funcion Insertar-- Nombre.
Por lo tanto mi primera pregunta es ¿como hacer referencia a un rango
definido con un nombre?
Y la segunda, el rango que quiero utilizar tiene mas de una columna, por lo
tanto ¿como digo al listbox en que columna hay que poner cada dato?

Lo que necesito es mostrar en un formulario todos aquellos campos que
cumplan una determinada condicion, sería como realizar un filtro, pero sin
necesidad de tener que ir hasta la hoja en cuestion.

Grancias por anticipado.


"Héctor Miguel" escribió en el mensaje
news:u7%23X$
hola, Adolfo !

> ... un listbox en el que necesito... un rango de datos... no... el rango


completo, sino determinadas columnas.
> ... mostrar... los registros... que cumplan unas determinadas


condiciones.
> ... me gustaria mas que quedase con una estructura de celdas
> ... la unica idea es filtrar previamente los datos y mostrar


posteriormente... en el listbox.
> ¿Alguna idea? Se aceptan sugerencias.

- para que quedase 'como una estructura de celdas'... [en principio]


'tendria que' ser un rango de celdas -?-
- para filtrar previamente los datos, una 'estructura' como la siguiente


[p.ej.]
en el modulo de codigo del formulario [algun evento o


procedimiento 'aparte' o... -???]
Dim Celda As Range
With ListBox1
For Each Celda In Range("pon aqui tu rango de datos")
If Celda = "pon aqui la condicion" Then .AddItem Celda
Next
End With

[seguamente] sera necesaria alguna prevencion/correccion de [posibles]


errores
y/o... modificaciones 'menores/mayores' segun las 'determinadas


condiciones'
y/o... mover las instrucciones a algun otro evento [o tipo de modulo]
... [etc.]

creo que [con los datos que proporcionas] podemos empezas por probar lo


anterior :))
saludos,
hector.


Respuesta Responder a este mensaje
#3 Héctor Miguel
16/02/2005 - 00:04 | Informe spam
hola, Adolfo !

... me referia con... estructura de celdas... cada dato.. dentro de un cuadrado
... que tuviese bordes, (una celda) no como en un listbox, pero... es lo menos importante.
... solucion que me planteas... solo me funciona para un rango de m filas y 1 columna.



=> no 'necesariamente'... [recuerda que] un rango... 'es un rango' [celdas/filas/columnas/[dis]continuas/etc.]

... yo quiero mostrar... un rango definido dentro de la funcion Insertar-- Nombre.
... primera pregunta... ¿como hacer referencia a un rango definido con un nombre?



=> igual que cuando haces referencia a rangos con la notacion 'A1' [entre comillas dobles]
p.e. For Each Celda In Range("NombreDelRango")

... segunda, el rango que quiero utilizar tiene mas de una columna, por lo tanto
... ¿como digo al listbox en que columna hay que poner cada dato?



=> los controles 'ListBox' tienen la propiedad '.ColumnCount' [1 columna 'por omsion']
puedes 'indicarle' [en tiempo de diseño o 'al vuelo'] las columnas que necesitas
=> para 'cargarle' datos en determinada/s columna/s, 'estas' se cuentan de 0 a n_columnas MENOS UNO
puedes utilizar la propiedad '.List(Fila_x, Columna_x)' para decirle 'exactamente en donde' va cada dato
=> supongo que lo realmente 'importante' sera 'armar' uno o dos bucles para recorrer las filas/columnas del rango

si cualquier duda =>o informacion adicional mas 'precisa'<=... ¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Adolfo
16/02/2005 - 09:26 | Informe spam
Hola Héctor,
Gracias por tus soluciones, al final he optado por montar una matriz y
cargar los datos de la matriz dentro del listbox.

A la hora de crear los bucles necesito que me recorran todas las filas del
rango y todas las columnas, ¿cómo puedo decir a la aplicación cuantas filas
o columnas son? En principio el número de filas y columnas es variable.
Supongo que sera definir una variable con el número de filas o columnas,
pero ¿cómo se cuantas son?

Un saludo,

"Héctor Miguel" escribió en el mensaje
news:
hola, Adolfo !

> ... me referia con... estructura de celdas... cada dato.. dentro de un


cuadrado
> ... que tuviese bordes, (una celda) no como en un listbox, pero... es lo


menos importante.
> ... solucion que me planteas... solo me funciona para un rango de m


filas y 1 columna.

=> no 'necesariamente'... [recuerda que] un rango... 'es un rango'


[celdas/filas/columnas/[dis]continuas/etc.]

> ... yo quiero mostrar... un rango definido dentro de la funcion


Insertar-- Nombre.
> ... primera pregunta... ¿como hacer referencia a un rango definido con


un nombre?

=> igual que cuando haces referencia a rangos con la notacion 'A1' [entre


comillas dobles]
p.e. For Each Celda In Range("NombreDelRango")

> ... segunda, el rango que quiero utilizar tiene mas de una columna, por


lo tanto
> ... ¿como digo al listbox en que columna hay que poner cada dato?

=> los controles 'ListBox' tienen la propiedad '.ColumnCount' [1 columna


'por omsion']
puedes 'indicarle' [en tiempo de diseño o 'al vuelo'] las columnas


que necesitas
=> para 'cargarle' datos en determinada/s columna/s, 'estas' se cuentan de


0 a n_columnas MENOS UNO
puedes utilizar la propiedad '.List(Fila_x, Columna_x)' para decirle


'exactamente en donde' va cada dato
=> supongo que lo realmente 'importante' sera 'armar' uno o dos bucles


para recorrer las filas/columnas del rango

si cualquier duda =>o informacion adicional mas 'precisa'<=... ¿comentas?
saludos,
hector.


Respuesta Responder a este mensaje
#5 Héctor Miguel
16/02/2005 - 09:46 | Informe spam
hola, Adolfo !

... he optado por montar una matriz y cargar los datos... dentro del listbox.
... los bucles necesito que me recorran todas las filas del rango y todas las columnas
... ¿como puedo decir a la aplicacion cuantas filas o columnas son?
... el numero de filas y columnas es variable.
... sera definir una variable con el numero de filas o columnas, pero ¿como se cuantas son?



p.e.
Dim Filas As Long, Cols As Byte
With Range("NombreDelRango")
Filas = .Rows.Count
Cols = .Columns.Count
End With

[probablemente estes usando nombres de rangos 'dinamicos' -?-] ... si puedes indicar:
- cual es 'el rango' [y/o de que depende la variacion en filas/columnas]
- en cual columna se busca 'la coincidencia'
- cuales serian las columnas a trasladar al listbox [y el orden si fuera 'diferente']
se podria [tratar de] proponer una [posible] solucion 'mas en concreto' ;)

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida