¿Qué opciones tengo para compartir tablas de excel y utilizarlas como base de datos para otros libros?

La idea principal es saber que alcance tiene, qué acciones puedo realizar y/o qué métodos hay para interactuar entre archivos, teniendo en cuenta que siempre me manejo con macros, subrutinas, funciones, etc...
No puedo plantearles un ejemplo, una situación en particular, porque no es que yo quiera hacer algo específico, sino, que a partir de los conocimientos, sabiendo sus capacidades y versatilidad, será el modo de trabajo que tendré. Es decir, que dependiendo de lo que yo pueda hacer en el ámbito de compartir información, es cómo adaptaré mis trabajos.
Aún así puedo dar una idea de mis necesidades, y me van a entender mejor porqué dije lo otro anteriormente.
Por un lado tengo archivos donde nunca permito que sus usuarios lleguen a sus planillas, siempre me manejo mediante formularios, para así asegurarme que no puedan cometer errores en las planillas ni tampoco llegar a adulterar los valores cargados en las mismas.
Resulta que con el tiempo fuí realizando varios libros de estas características donde utilizan las mismas bases de datos. Por ello mi intención de informarme sobre esto, para ver de qué manera operar.
Por un lado, he visto código que permite abrir otros archivos de excel, luego tomar valores y volver a cerrarlos, pero como he dicho antes, estos archivos no se abren así de simple, sino que al ejecutarse la sentencia .open, se ejecuta en el otro archivo el evento de abrir (creo que se llama workbook. Open o algo así), y salen las opciones para cargar las credenciales de usuario.
Mi idea era generar uno simple, que tan sólo tenga los datos, y que el resto de los archivos ingresen a tomar valores y modificarlos, porque encima también tengo que generar una planilla extra que modifique los datos sobre esas bases de datos.
En el caso de querer utilizar planillas como bases de datos, y que los demás archivos se ejecuten en otras PC's y se nutran de ella y modifiquen sus datos, ¿hay alguna manera mas óptima de hacerlo?, ¿Algún código simple?. He intentado con lo anterior mente mencionado (eso de abrir y cerrar), pero no es muy práctico, porque a veces tengo que tomar varios datos de varias hojas distintas, y tengo que abrir y cerrar el archivo tantas veces como datos necesite buscar, no he encontrado una manera mejor de interactuar con otros archivos

1 Respuesta

Respuesta
2

Hol.a

Tengo que comenzar diciéndote que Excel no es el programa idóneo para el manejo de datos entre distintas PC, si uno va a usar Office para eso lo ideal es usar Access.

Igual asumo que como ya tienes cosas avanzadas te es más práctico continuar trabajando con Excelvy de ser así, van mis sugerencias:

- Ten el libro con datos en una carpeta compartida en red, pero mi recomendación es que ese libro no tenga macros ni nada, no actives ningún evento (tipo el "open") en dicho libro. Además que dicho libro tenga una ruta fija que, de preferencia, nadie más conozca (claro, a menos que se ponga a rebuscar en todas las carpetas de la red). Por último, verifica que la carpeta con el archivo tenga todos los permisos necesarios de lectura/escritura.

- Desde otro libro, o libros, que NO van a guardar los datos, es que debes realizar las operaciones necesarias para alimentar tu libro de datos y todo debe ser enviado por VBA al libro de datos, no es tan difícil como puede parecer ni necesariamente los demás tienen que ver el libro de datos abierto en su pantalla. Basta que en tu código tengas algo como:

Application.ScreenUpdating = False
Workbooks.Open "Z:/Carpeta_x/Milibrodedatos.xlsx"
'Aquí todas las líneas que envían o modifican o lo que sea al libro que se ha abierto
ThisWorkbook.Close SaveChanges:=True
Application.ScreenUpdating = True

De ese modo abres, modificas/guardas/etc. cierras y guardas, y nadie se da cuenta que el libro de datos se abrió.

- Lo otro es hacerlo mediante conexiones que no usen "Open" para lo que tendrías que usar ADO y SQL lo que ya no es tan simple.

Salu2

Abraham Valencia

¡Gracias! 

Voy a probar con esto, sería exactamente lo que estaba buscando, porque en definitiva, no sólo estoy avanzado con varios archivos, sino también que no conozco nada de Access, y de casualidad enganché esto en mi trabajo porque nadie sabe mucho de ningún tipo de programación, esto es lo mejorcito jaaj.
De nuevo, muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas