Elegir datos en hojas diferentes segun cuadro combinado

10/10/2006 - 21:03 por bobafett | Informe spam
Muy buenas grupo, os quiero consultar sobre un problema que tengo para
selecionar datos en diferentes hojas segun lo que hay en dos cuadros
combinados.

-Explico: Tengo 3 hojas (para simplificar) Hoja1, Hoja2 donde estan los
datos y Hoja3 donde estan una lista de validación y un cuadro
combinado (el de Barra de VBA).

-El origen de datos de la lista es un rango llamado "Nombre" (que se
refiere a 2 celdas donde estan los datos Tabla1 y Tabla2, igual que los
rangos siguientes).

-Tengo dos rangos llamados Tabla1 y Tabla2 que corresponden a la
primera columna de cada hoja de datos (Hoja1 y Hoja2).

-En la propiedad ListFillRange del cuadro combinado, tengo el nombre
definido "Cuadro2" que se refiere a: =INDIRECTO(Hoja3!$A$5) donde A5 es
donde esta la lista de validación.

Esto en principio me funciona bien, pero quisiera que los rangos fueran
dinamicos, pero cuando los defino dinamicos al intentar poner el nombre
de "Cuadro2" en ListFillRange del cuadro combinado no me lo acepta.
Lo de los rangos dinamicos con DESREF (aprendido en el foro) en otras
situaciones funcionan perfectamente, pero con esto parece haber algun
problema.

Gracias de antemano y esperando ideas.
Alfredo
Saludos
 

Leer las respuestas

#1 Héctor Miguel
11/10/2006 - 05:36 | Informe spam
hola, Alfredo !

... problema... para selecionar datos en diferentes hojas segun lo que hay en dos cuadros combinados.
... Hoja1, Hoja2 donde estan los datos y Hoja3 donde estan una lista de validacion y un cuadro combinado (el de Barra de VBA).
... origen... de la lista es un rango llamado "Nombre" (... 2 celdas donde estan... Tabla1 y Tabla2, igual que los rangos siguientes).
... dos rangos llamados Tabla1 y Tabla2 que corresponden a la primera columna de cada hoja de datos (Hoja1 y Hoja2).
... ListFillRange del cuadro combinado... el nombre... "Cuadro2" que se refiere a: =INDIRECTO(Hoja3!$A$5) ... la... validacion.
... quisiera que los rangos fueran dinamicos, pero cuando los defino dinamicos
... el nombre de "Cuadro2" en ListFillRange del cuadro combinado no me lo acepta...



1) [hasta donde se]... cuando 'combinas' una funcion =indirecto(...) para 'tomar' un rango 'dinamico' [desref(...) o similares]...
el 'resultado' DEJA de ser un dato 'valido' [como rango/referencia] para otras validaciones o la propiedad '.ListFillRange' :-(

2) si no te incomoda/importa/... la 'necesidad' de apoyarte con codigo en el evento '_change' de la hoja con la validacion.. -?-
[ya que es necesario 're/definir' el origen 'dinamico' para el combo]...
prueba con las siguientes lineas [en el modulo de codigo de 'esa' hjoa]...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address <> "$A$5" Then Exit Sub
ComboBox1.ListFillRange = Target
ComboBox1.ListIndex = -1
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares