Me tome la libertad de investigar acerca
de este tema para generar una nota que diera una respuesta contundente al título ¡Juzguen ustedes!
En realidad lo que se pretende es
consultar información desde un libro de consulta, a partir de otro libro que
contiene la base de datos; además, se pretende que al actualizar la base de
datos, automáticamente se actualice la información en el libro de consulta.
Primero construimos nuestra base de datos. El nombre del libro: base_datos
En
el libro de consulta abrimos el editor de VB (Alt+F11), y en el objeto ThisWorkbook
(del panel de la izquierda) agregamos el siguiente código:
Primero construimos nuestra base de datos. El nombre del libro: base_datos
Debo mencionar que en el marco de esta
nota he decidido generar consulta de dos formas:
1. Usando una lista desplegable de
controles de formulario (mi favorita).
Entonces, instalamos el control.
Posteriormente, generamos un nombre que hará que aparezca el nombre del libro
actualizado; siempre que los dos libros estén abiertos. Aplica para las dos formas de consultar.
El nombre es libro1
Teniendo los dos
libros abiertos, y desde el libro de consulta generamos el nombre.
=DESREF([base_datos.xlsx]Hoja1!$A$2;0;0;CONTARA([base_datos.xlsx]Hoja1!$A:$A);1)
Explicación: punto de referencia Hoja 1
del libro base_datos, celda A2, desviación en filas y columnas no. Contar
celdas no vacías en la columna A de la Hoja 1 del libro base_datos (Alto de
filas), finalmente una columna de ancho.
Damos click derecho sobre el control de
formulario.
En el rango de entrada tecleamos el nombre
anteriormente creado, y en el campo vincular con la celda elegimos para nuestro
caso la celda A5 (esta es la referencia de fila que nos ofrece el control).
Finalmente, para consultar el precio del
libro usamos la función Índice así:
Reitero que para formular esto, se deben
tener los dos libros abiertos.
=INDICE([base_datos.xlsx]Hoja1!$B$2:$B$1048576;A5)
Explicación: en este punto sólo
necesitamos conocer la matriz en donde buscar, y el número de fila(celda A5 referenciada
en formato de control).
He referenciado el total de filas de la
columna B para actualizar de manera automática los precios.
El resultado:
2. Usando una celda validada de la opción
Datos-Validación de datos.
En el campo Origen ponemos el nombre
libro1; aquí lo podemos teclear o llamar con la tecla F3.
La diferencia notable respecto del método
anterior es que usaremos la función BuscarV o ConsultaV para consultar el
precio del libro.
=BUSCARV(B6;[base_datos.xlsx]Hoja1!$A$2:$E$1048576;2;FALSO)
Finalmente, como recordaremos, he
mencionado que para que las listas de los nombres de los libros funcionen y se
actualicen automáticamente, deben estar abiertos los dos libros; entonces sería
poco práctico tener que abrir los dos
libros para ingresar nuevas referencias de libros, por lo que haremos que el
libro de la base de datos se abra automáticamente cada vez que abramos el libro
de consulta, además haremos que la ventana activa siempre sea el de consulta.
El resultado:
Por
último se recomienda que los dos libros estén en el mismo directorio.
No hay comentarios.:
Publicar un comentario