Hola Fernando, molestando de nuevo espero me puedas ayudar con las siguientes preguntas, de antemano muchas gracias. Tengo un libro de excel en el que hice un formulario de una factura, y quiero asociarlo a una base de datos, entonces: 1. Hay alguna forma de asociar este formulario con una base de datos, que NO sea creando una plantilla, ¿con el Asistente de Plantillas de Excel? 2. En caso de, si se puede..., ¿se puede hacer que la base de datos este en el mismo libro (otra hoja) que el formulario?
Si quieres te mando el archivo para el cual te formulo mis preguntas. Aclaración: si bien no manejo la programación de macros, si la solución viene por ese lado, puedes mandarme igual el código y yo luego lo estudio, MUCHAS GRACIAS. FERNANDO FONTANA
1 respuesta
Respuesta de fejoal
1
1
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
Supongo que tu formulario de factura es una hoja de Excel donde pretendes colocar un código -de cliente, por ejemplo- y que te traiga sus datos asociados. A su vez, parece que tales datos están en una base de datos (¿de MS Access o en MS Excel?) En cualquier caso (MS Access o MS Excel) primero debes usar la función BUSCARV() Necesitaras la tabla en una hoja de MS Excel (luego veremos como introducirla si fuera de MS Access) A modo de ejemplo esta tabla estará en el rango G4:H60. Supongamos que el cliente (o su código, mejor) cuyos datos deseas mostrar está en la celda A2, escribe en la celda B2 (donde quieres ver un dato) la siguiente fórmula: =BUSCARV(A2,$G$4:$H$60,2,FALSO) [Como siempre, considera si sueles usar comas o punto y coma para separar argumentos de las funciones. Yo usé ","] Asígnale el formato deseado y, luego, copia esta celda y pégala en las restantes de esta misma columna. Así obtendrás el dato del cliente que se indique en la celda correspondiente en la columna B (2). Para otros datos usa la misma fórmula y cámbiale el número de columna de donde tomar la información. Si quieres mejorarla, puedes usa esta que es similar: =SI(ESNOD(BUSCARV(A2,$G$4:$H$60,2,FALSO)),"No existe en Base",BUSCARV(A2,$G$4:$H$60,2,FALSO)) Bien, esta fórmula devolverá "No existe en Base"; si el código o nombre en la celda A2 no existe en la columna G de la base que creaste. Finalmente aclaro que ESNOD() es una función que devuelve verdadero si encuentra un error del tipo #N/A (NO Disponible) es decir que el dato no fue encontrado en la base de búsqueda. El condicional SI() es el encargado de mostrar uno u otro mensaje según el caso. --- En caso de que tu base estuviera en MS Access, deberás usar la utilidad de obtener datos externos. El proceso inicial dependerá de qué versión de Office utilices. Hasta la versión 97 este tipo de vínculos se realizaba a través del protocolo ODBC. Las versiones posteriores utilizan DAO. Personalmente, tengo la versión vieja por lo tanto te explico su proceso a continuación: En el archivo donde quieres colocar el vínculo, haz: -Datos -Obtener Datos Externos -Crear nueva consulta... Internamente, esto activará el Microsoft Query En la ventana de diálogo se listan los tipos de Fuente de datos disponibles y, en la otra solapa, las consultas que tu pudieras tener grabadas. Pero como esto es una consulta nueva, busca el driver de MS Access 97 database. Luego, deberás indicarle cuál es la base de datos de MS Access que quieres vincular. El cuadro de diálogo siguiente te propondrá los nombres de los campos disponibles en esa tabla para que selecciones aquellos que te interesen para tu trabajo. Pueden ser todos o sólo algunos. Si la referencia será tu campo clave de búsqueda asígnale el primer lugar en la tabla. Evita que el campo automático Id (identificación interna) sea transferido a la consulta, porque sino esta será la primer columna del rango y tu necesitas que allí esté el código propio del cliente. Los pasos siguientes te permitirán aplicarle filtros para seleccionar determinados registros de la tabla y, luego, asignarle un orden. Finalmente, elegirás la ubicación en tu archivo MS Excel de la tabla vinculada y es aconsejable que le des un nombre que recuerdes fácilmente (ej TablaClie) utilizando el botón Propiedades. Una vez creado el vínculo tendrás una tabla llamada TablaPrecios que podrás usar como un nombre de rango y acceder a él con las funciones standard de Búsqueda (Buscarv, Coincidir, Indice, etc.) Usando el ejemplo anterior, la fórmula quedaría: =BUSCARV(A2,TablaClie,2,FALSO) Fiuuuu, Fernando, espero que esta larga explicación te ayude a resolver tu problema. En el caso de que no hayas logrado implementarlo, podes mandarme el archivo y la base. Ya tienes mi dirección de correo. Comentame si anduvo. Un abrazo! Fernando
Fernando espero sepas comprender por no responder con prontitud, es que tuve problemas con la computadora y no me dejaba navegar en internet, por otro lado gracias por tu generosa respuesta, no dejaste nada de tinta en el tintero pero, querido amigo no es exactamente a lo que iba mi pregunta. Paso a explicarme: 1. Hay alguna forma de asociar este formulario con una base de datos, que NO sea creando una plantilla, ¿con el Asistente de Plantillas de Excel? Aquí mi consulta esta dirigida a la manera en como vincular los datos cargados en el formulario con una base de datos que sirva de respaldo de cada uno de los registros. 2. En caso de, si se puede..., ¿se puede hacer que la base de datos este en el mismo libro (otra hoja) que el formulario? En este punto me refiero a un libro POR que posea 2 hojas, una donde estará el formulario de entrada de los datos y otra se encontrará la Base de Datos. Yo igual te mando el archivo por el cual te consulto. Por todo gracias. Fernando.
Hoy llegó el mail... pero sin archivo adjunto alguno. Espera que lo vea -cuando me lo mandes- y te avisaré por este medio cuando lo haya resuelto.
La espera desespera, te pido ten un poco de paciencia Fer, que va saliendo completo. Tuve problemas con mi correo y no me dejaba adjuntar el archivo, pero ahorita te lo estoy enviando, espero tenga suerte. Saludos. Fernando.
Todo bien, Fernando En todo caso no estoy impaciente por recibirlo. Bastante entretenido me tienen en mi trabajo. Además hasta la seman próxima no vuelvo a entrar por aquí. Que tengas un excelente finde Fernando
Gracias por todo y que pase un buen fin de semana.
El lunes empiezo a verlo.
Lunes y terminé con tu archivo. Acaba de salir para tu cuenta de e-mail Avisame si lo recibiste y si te sirve. Un abrazo! Fernando