Uso de la opcion lista

22/02/2005 - 05:31 por Uso de una opción lista que cambie | Informe spam
Se desea en una hoja Excel con cientos de filas en las cuales se pueda tener
la opcion de escoger en una columna el centro de costo y en la otra el equipo
al cual se esta dando mantenimiento y que pertenece a dicho centro de costo.
Se ha podido trabajar con la opcion LISTA para escoger el centro de costo,
pero deseamos que con otra opcion LISTA se puedan escoger los equipos que
sean referentes a dicho centro de costo y que no aparezca toda la lista de
equipos que pertenecen a otros centros de costos.
Agradecere si me pueden informar si es factible realizarlo o si es necesario
alguna codificacion. De preferencia si se puede realizar sin botones de
comando.
Saludos
Noé
 

Leer las respuestas

#1 Héctor Miguel
22/02/2005 - 09:17 | Informe spam
hola, Noe !

... en una hoja Excel con cientos de filas... se pueda tener la opcion de escoger
... en una columna el centro de costo y en la otra el equipo... que pertenece a dicho centro de costo.
... con la opcion LISTA... escoger el centro de costo
... con otra opcion LISTA... que no aparezca... equipos que pertenecen a otros centros de costos.
... si es factible realizarlo o si es necesario alguna codificacion. De preferencia... sin botones de comando.



si logro que sea 'entendible' el procedimiento que te expongo al final... ¡ ya la hicimos !!! :))
usaremos reglas de validacion por lista, nombres con referencia a rangos 'dinamicos' y...
[un poquito de] codigo en el modulo de eventos de la hoja con las listas [no lo pude 'evitar'] :(
voy a suponer que la base de datos con cada centro de costos y sus equipos esta en la hoja1
y que el rango con las listas de validacion esta en la hoja2 y es 'B2:C30' [ya lo ampliaras al 'real']
toma nota que mi separador de argumentos es la coma ',' NO punto y coma ';'

si cualquier duda... ¿comentas?
saludos,
hector.
==> en la hoja1 <1.- pones los centros de costos en la fila 1 [como encabezados de columna] ->iniciando en A1<-
2.- pones los equipos en las filas que se correspondan con su centro de costos ->iniciando en A2<-
=>no dejes celdas vacias de por medio NI en los centros NI en los equipos<3.- define los siguientes nombres [rangos dinamicos o 'cambiantes'] con [menu] insertar / nombre / definir
nombre: formula en el campo se refiere a...
Centros =DesRef(Hoja1!$A$1,,,1,ContarA(Hoja1!$1:$1))
Desplazar =Coincidir(Hoja2!Centro,Centros,0)
ColCentro =Extrae(Direccion(1,Desplazar),2,Encontrar("$",Direccion(1,Desplazar),2)-2)
Equipos =DesRef(Hoja1!$A$1,1,Desplazar-1,ContarA(Indirecto("Hoja1!"&ColCentro&":"&ColCentro))-1)
=> en la hoja2 <4.- usando [menu] datos / validacion...
valida el rango 'B2:B30' con lista seleccionando como origen =Centros
valida el rango 'C2:C30' con lista seleccionando como origen =Equipos
=> en el modulo de codigo de la hoja2 <Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("b2:c30")) Is Nothing Then
If Target.Count > 1 Then ActiveCell.Select
Names.Add Name:="Centro", RefersTo:="=" & Me.Name & "!$b$" & ActiveCell.Row
End If
End Sub

notas: con relacion al nombre que se va [re]definiendo en el evento...
sirve para detectar la columna del centro validado [col B] y desplazar para saber que equipos listar [col C]
la lista de los equipos de la columna 'C' sera dependiente del centro seleccionado en la columna 'B'
[obviamente] si se cambia la seleccion en 'B' cuando ya se habia seleccionado en 'C'... habria que 'corregir'

Preguntas similares