Pregunte en otro sitio y me dijeron que era imposible, pero ayer buceando en el foro vi una pregunta antigua del estilo.
La pregunta era si “Es posible alterar el código VBA mediante el propio código VBA”, y era posible, y mi pregunta es: si una macro puede grabar “datos” en sí misma?.
La razón:
Tengo un archivo Excel “F:\Mi archivo excel.xlsm” con una macro que coge los datos de otro archivo que casi siempre está en la misma ruta, por lo que esa ruta es la que tiene la macro, “D:\Pruebas de Excel\Prueba_1_excel.xls”. Pero si mañana se cambia el directorio del archivo de datos a “D:\Cambio\Prueba_1_excel.xls”, o incluso el nombre “D:\Cambio\Prueba_2_excel.xls”, le tengo puesto Application.FileDialog(msoFileDialogOpen) para buscar la nueva ubicación yo, y luego modifico la macro con la nueva ruta/nombre.
Hay alguna forma de que la macro coja esa nueva ubicación y se lo guarde ella sola en lugar del antiguo? O eso es imposible y hay que hacerlo a mano y guardar de nuevo la macro como lo estoy haciendo hasta ahora?.
La referencia es absoluta al archivo por que casi siempre está en la misma carpeta, y si alguna vez cambia, es al cambiar el año (que se cambia el nombre por el del nuevo año) o por cambio de pc (cada tres años). Como veis no es un fallo habitual y fácilmente arreglable, es mas cosa de rizar el rizo, que para mis nulos conocimientos llegar hasta donde he llegado me parece demasiado. Al principio de año solo sabía de macros con la “grabadora de macros”, y ahora a base de buscar por la web me he atrevido, eso sí, solo con módulos normales, con módulos de clase y userform aun me pierdo…mas bien no me encuentro jajaja
No adjunto archivo porque entiendo que es mas falta de conocimientos míos y no he sabido googlear bien, pero si consideráis que es necesario lo subo.
Muchas gracias y un saludo.
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola:
Pregunte en otro sitio y me dijeron que era imposible, pero ayer buceando en el foro vi una pregunta antigua del estilo.
La pregunta era si “Es posible alterar el código VBA mediante el propio código VBA”, y era posible, y mi pregunta es: si una macro puede grabar “datos” en sí misma?.
La razón:
Tengo un archivo Excel “F:\Mi archivo excel.xlsm” con una macro que coge los datos de otro archivo que casi siempre está en la misma ruta, por lo que esa ruta es la que tiene la macro, “D:\Pruebas de Excel\Prueba_1_excel.xls”. Pero si mañana se cambia el directorio del archivo de datos a “D:\Cambio\Prueba_1_excel.xls”, o incluso el nombre “D:\Cambio\Prueba_2_excel.xls”, le tengo puesto Application.FileDialog(msoFileDialogOpen) para buscar la nueva ubicación yo, y luego modifico la macro con la nueva ruta/nombre.
Hay alguna forma de que la macro coja esa nueva ubicación y se lo guarde ella sola en lugar del antiguo? O eso es imposible y hay que hacerlo a mano y guardar de nuevo la macro como lo estoy haciendo hasta ahora?.
La referencia es absoluta al archivo por que casi siempre está en la misma carpeta, y si alguna vez cambia, es al cambiar el año (que se cambia el nombre por el del nuevo año) o por cambio de pc (cada tres años). Como veis no es un fallo habitual y fácilmente arreglable, es mas cosa de rizar el rizo, que para mis nulos conocimientos llegar hasta donde he llegado me parece demasiado. Al principio de año solo sabía de macros con la “grabadora de macros”, y ahora a base de buscar por la web me he atrevido, eso sí, solo con módulos normales, con módulos de clase y userform aun me pierdo…mas bien no me encuentro jajaja
No adjunto archivo porque entiendo que es mas falta de conocimientos míos y no he sabido googlear bien, pero si consideráis que es necesario lo subo.
Muchas gracias y un saludo.