¿Se puede -una vez elegido un elemento ....

01/07/2009 - 18:24 por José-Luis | Informe spam
Hola a todos
¿Se puede -una vez elegido un elemento de y en un combobox- y una vez
"aceptado" por el usuario a través de un si/no dejar visible la elección pero
sin posiblidad de modificación posterior? +/- Como si dijéramos "desactivado".
Lógicamente si la elección es no debe poder volver a elegir.
Gracias

Preguntas similare

Leer las respuestas

#6 José-Luis
03/07/2009 - 18:07 | Informe spam
Hola Héctor

Muchas gracias por la ayuda

"Héctor Miguel" wrote:

hola, José Luis !

> 1.-¿Conviene cambiarles el nombre a los combos?

=> la respuesta es subjetiva, depende de la necesidad (usos y costumbres) de interactuar con los controles (p.e.)
- mantener los nombres "naturales" facilita usar bucles con solo (in/de)crementar la parte del numero
- definir nombres "propios" a cada control facilita la "memoria" para recordar a cual control queremos hacer referencia
- los bucles con nombres propios se pueden sustitur por variables de matriz (no tan sencillo como con numeros pero funciona)

> 2.-¿Que efecto tiene el listindex?

=> establecer la propiedad .ListIndex en -1 (menos uno) equivale a que no haya elemento "seleccionado" en el control

con respecto de "la otra pregunta"... tambien depende de los "usos y costumbres" de programacion (p.e.)
resulta mas rapido cargar elementos en un control de lista/combo por su propiedad .List = <matriz> (es decir)
en lugar de "ir bucleando" celda-por-celda, sembrar la matriz de valores del mismo rango pero en un solo paso
incluso, pocas veces en realmente necesario ".Select"(ionar) los objetos para trabajar con sus propiedades (p.e.)

ComboBox2.Clear
Worksheets("Hoja1")
ComboBox2.List = .Range(.Range("a2"), .Range("a2").End(xlDown)).Value
End With

saludos,
hector.

__ la otra pregunta __
> Yo he utilizado ejemplos de los foros para rellenar los combos basados en columnas (naturalezas)
> combo1 empezando desde la A, en filas (grupos) dependiendo del anterior "cuelgan" de cada columna
> (combo2), familias en filas (porque tengo mas de 256 en algun caso y el excel no me "da" tantas columnas) agrupadas ademas
> en hojas distintas (combo3) y finalmente las actividades dependientes de las anteriores
> ordenadas en columnas dependientes de las filas anteriores (combo4).
> Para la primera pareja de combos se que utilizo el listindex pero a partir de ahi ya no.
>
> 'Rellena el combo 2
> Private Sub ComboBox1_Change()
> 'Llenamos el combobox2 al recibir el foco,
> 'pero antes lo limpiamos
> ComboBox2.Clear
> 'seleccionamos la hoja1
> Worksheets("Hoja1").Select
> 'miramos lo que hay seleccionado en el combobox1
> 'Listindex + 1 nos devuelve la columna de las naturalezas,
> 'porque el listindex empieza siempre por cero
> columna = ComboBox1.ListIndex + 1
> 'seleccionamos la celda que proceda,
> 'a partir de la segunda fila
> Cells(2, columna).Select
> 'vamos a llenar dinamicamente el combobox
> 'dependiendo de la naturaleza elegida
> Do While Not IsEmpty(ActiveCell)
> 'Anadimos los nombres de las familias al combobox
> ComboBox2.AddItem ActiveCell.Value
> 'bajamos una fila
> ActiveCell.Offset(1, 0).Select
> Loop
> End Sub
>
> Si me puedes aclara esta duda
> Ya te comento que esto lo vi en unos ejemplos, lo adapte y funciona como se pretende
> lo que no se es si habra una mejor opcion.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida