Lista desplegable

28/09/2004 - 13:59 por Lorenzo | Informe spam
Buenos Dias.

Me gustaria saber se hay forma de en los dos (por favor, en los dos) tipos
de controles de lista desplegable que tiene excel (el de formularios y el de
controles) se puede asignar el contenido de dicha lista a una serie de
valores dependiendo del valor de una celda adyacente a cada uno de los
valores a mostrar. Me explico un poco mejor ...

Familia Descripcion
1 Articulo 1 Familia 1
1 Articulo 2 Familia 1
2 Articulo 1 Familia 2
2 Articulo 2 Familia 2

Tengo dos controles, uno para la familia 1 y otro para la familia 2 y quiero
que en sus valores solo aparezcan los que correspondan a cada familia. Los
valores aumentan y disminuyen constantemente, por lo que no puedo limitar el
valor a un rango ni asignar un nombre ... ¿se os ocurre algo?.

Me gustaria una solucion para ambos tipos de controles (si, ya se vaya
morro), pues uso de ambos tipos de controles por las caracteristicas de
personalizacion que tienen cada uno.

Gracias a todos por vuestra ayuda.-

Lorenzo / Malaga / España
 

Leer las respuestas

#1 Fernando Arroyo
28/09/2004 - 17:03 | Informe spam
Si los datos están ordenados por la columna 'Familia', y suponiendo que los cuadros combinados de la barra 'Cuadro de controles' se llamaran CCFamilia1 y CCFamilia2, y los de la barra 'Formularios' se llamaran FormFamilia1 y FormFamilia2, el código podría ser:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, [A:A]) Is Nothing And Target.Cells.Count = 1 Then
CCFamilia1.ListFillRange = "²:B" & [Match(2, A:A, 0)] - 1
CCFamilia2.ListFillRange = "=B" & [Match(2, A:A, 0)] & ":B" & [CountA(A:A)]
Shapes("FormFamilia1").ControlFormat.ListFillRange = "²:B" & [Match(2, A:A, 0)] - 1
Shapes("FormFamilia2").ControlFormat.ListFillRange = "=B" & [Match(2, A:A, 0)] & ":B" & [CountA(A:A)]
End If
End Sub


Dicho código tendría que ir en el módulo de la hoja (click derecho sobre su etiqueta->Ver código)
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Lorenzo" escribió en el mensaje news:%
Buenos Dias.

Me gustaria saber se hay forma de en los dos (por favor, en los dos) tipos
de controles de lista desplegable que tiene excel (el de formularios y el de
controles) se puede asignar el contenido de dicha lista a una serie de
valores dependiendo del valor de una celda adyacente a cada uno de los
valores a mostrar. Me explico un poco mejor ...

Familia Descripcion
1 Articulo 1 Familia 1
1 Articulo 2 Familia 1
2 Articulo 1 Familia 2
2 Articulo 2 Familia 2

Tengo dos controles, uno para la familia 1 y otro para la familia 2 y quiero
que en sus valores solo aparezcan los que correspondan a cada familia. Los
valores aumentan y disminuyen constantemente, por lo que no puedo limitar el
valor a un rango ni asignar un nombre ... ¿se os ocurre algo?.

Me gustaria una solucion para ambos tipos de controles (si, ya se vaya
morro), pues uso de ambos tipos de controles por las caracteristicas de
personalizacion que tienen cada uno.

Gracias a todos por vuestra ayuda.-

Lorenzo / Malaga / España



Preguntas similares