Lista de Validación Dependiendo de otra lista.

01/07/2005 - 22:03 por Roberto Miranda | Informe spam
Muchachos... estoy leyéndolos desde aproximadamente el 30 de Abril de este
año, esta es mi primera intervención, he tratado de ponerme al día con todos
los mensajes, porque son muy, muy buenos, pero son demasiados tengo
pendiente aprox 1,000 sin leer.

Tengo lo siguiente (Un Ejemplo):

Sucursal Uno
- Producto RA
- Producto RJ
- Producto LM
Sucursal Dos
- Producto HY
- Producto QE
- Producto JK
Sucursal Tres
- Producto AB
- Producto NB
- Producto PL

Lo que yo quiero es que de una celda de otra hoja, P/E: Seleccionar
Cualquiera de las sucursales: (Ya lo hice con Datos/Validación) pero en otra
celda contiguo seleccionar Uno de los productos solamente para esa Sucursal
(o sea si selecciono Sucursal Tres, solo deberían de aparecerme AB, NB y
PL), o sea que en una lista me muestre solo los productos para esa sucursal,
se que se puede hacer con un Combo Box, el caso es que son registros de
aproximadamente 1,000 por Mes, entonces debería de tener 1,000 combos,
entonces no me resulta esa opción, quisiera ver si se podría hacer mediante
Datos / Validación

Muchas Gracias por la ayuda que me puedan brindar.

Roberto Miranda
Nicaragua

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
02/07/2005 - 00:01 | Informe spam
hola, Roberto !

Tengo lo siguiente (Un Ejemplo):
Sucursal Uno
- Producto RA [...]
Sucursal Dos
- Producto HY [...]
Sucursal Tres
- Producto AB [...]
... quiero... una celda de otra hoja... Seleccionar Cualquiera de las sucursales... lo hice con Datos/Validacion
... en otra celda contiguo seleccionar Uno de los productos solamente para esa Sucursal
... quisiera ver si se podría hacer mediante Datos / Validacion



si logro que sea 'entendible' el procedimiento que te expongo al final... [valdria la pena probarlo] :))
puedes usar las 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 una de las sucursales y sus productos 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 [o informacion adicional]... comentas?
saludos,
hector.
==> en la hoja1 <1.- pones las sucursales en la fila 1 [como encabezados de columna] ->iniciando en A1<-
2.- pones los productos en las filas que se correspondan con su sucursal ->iniciando en A2<-
=>no dejes celdas vacias de por medio NI en las sucursales NI en los productos<3.- define los siguientes nombres [rangos dinamicos o 'cambiantes'] con [menu] insertar / nombre / definir...
nombre: formula en el campo se refiere a...
Sucursales =DesRef(Hoja1!$A$1,,,1,ContarA(Hoja1!$1:$1))
Desplazar =Coincidir(Hoja2!Sucursal,Sucursales,0)
ColSucursal =Extrae(Direccion(1,Desplazar),2,Encontrar("$",Direccion(1,Desplazar),2)-2)
Productos =DesRef(Hoja1!$A$1,1,Desplazar-1,ContarA(Indirecto("Hoja1!"&ColSucursal&":"&ColSucursal))-1)
=> en la hoja2 <4.- usando [menu] datos / validacion...
valida el rango 'B2:B30' con lista seleccionando como origen =Sucursales
valida el rango 'C2:C30' con lista seleccionando como origen =Productos
=> 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:="Sucursal", 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 de la sucursal validada [col B] y desplazar para saber que productos listar [col C]
la lista de los productos de la columna 'C' sera dependiente de la sucursal seleccionado en la columna 'B'
[obviamente] si se cambia la seleccion en 'B' cuando ya se habia seleccionado en 'C'... habria que 'corregir'
Respuesta Responder a este mensaje
#2 Roberto Miranda
02/07/2005 - 02:03 | Informe spam
Excelente Héctor Rápida agilidad para resolver...

Claro que fuera mejor que no tuviera código... pero funciona de lo más
bien...

Muchas gracias

Solo me falta aprender más el funcionamiento de "Target", y otras funciones
de vba, para aprender más y poder enseñar...

Saludos

Roberto Miranda

"Héctor Miguel" escribió en el mensaje
news:Oe%23$
hola, Roberto !

Tengo lo siguiente (Un Ejemplo):
Sucursal Uno
- Producto RA [...]
Sucursal Dos
- Producto HY [...]
Sucursal Tres
- Producto AB [...]
... quiero... una celda de otra hoja... Seleccionar Cualquiera de las
sucursales... lo hice con Datos/Validacion
... en otra celda contiguo seleccionar Uno de los productos solamente
para esa Sucursal
... quisiera ver si se podría hacer mediante Datos / Validacion



si logro que sea 'entendible' el procedimiento que te expongo al final...
[valdria la pena probarlo] :))
puedes usar las 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 una de las sucursales y sus
productos 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 [o informacion adicional]... comentas?
saludos,
hector.
=> => en la hoja1 <> 1.- pones las sucursales en la fila 1 [como encabezados de
columna] ->iniciando en A1<-
2.- pones los productos en las filas que se correspondan con su
sucursal ->iniciando en A2<-
=>no dejes celdas vacias de por medio NI en las sucursales NI en los
productos<> 3.- define los siguientes nombres [rangos dinamicos o 'cambiantes'] con
[menu] insertar / nombre / definir...
nombre: formula en el campo se refiere a...
Sucursales =DesRef(Hoja1!$A$1,,,1,ContarA(Hoja1!$1:$1))
Desplazar =Coincidir(Hoja2!Sucursal,Sucursales,0)
ColSucursal
=Extrae(Direccion(1,Desplazar),2,Encontrar("$",Direccion(1,Desplazar),2)-2)
Productos
=DesRef(Hoja1!$A$1,1,Desplazar-1,ContarA(Indirecto("Hoja1!"&ColSucursal&":"&ColSucursal))-1)
=> en la hoja2 <> 4.- usando [menu] datos / validacion...
valida el rango 'B2:B30' con lista seleccionando como origen
=Sucursales
valida el rango 'C2:C30' con lista seleccionando como origen
=Productos
=> 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:="Sucursal", 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 de la sucursal validada [col B] y
desplazar para saber que productos listar [col C]
la lista de los productos de la columna 'C' sera dependiente de
la sucursal seleccionado en la columna 'B'
[obviamente] si se cambia la seleccion en 'B' cuando ya se habia
seleccionado en 'C'... habria que 'corregir'

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