Buenas Paco!
Tengo un caso que la verdad no se si sera posible resolver, le cuento:
He creado un excel bastante complejo para varias subsidiarias, es prácticamente un programa, tiene formularios, tablas, reportes y un sin fin de macros, en cada oficina del pais utilizan el mismo excel pero un archivo diferente cada una con la informacion que ellos van ingresando al archivo en el dia a dia.
El problema se me da por que necesito hacer una corrección del archivo, algo que esta haciendo mal una macro, la correccion es facil en realidad pero como comprenderan deberia hacerlo con cada archivo que tiene cada subsidiaria, algo casi imposible ya que ellos lo ocupan constantemente. Tampoco puedo enviarles un archivo nuevo para utilizar ya que la cantidad de informacion ingresada por cada oficina es mucha.
Por ende, lo que se me ocurre es mandar un excel tipo "actualizacion" que cuando se abra ejecute una macro que haga las correcciones en el otro excel, pero dentro de esas correcciones va modificar una macro y no se la verdad si eso es posible, ademas he de mencionar que el codigo del primer excel llamemoslo "el programa" esta protegido con contraseña.
Existe alguna forma de mediante codigo poder modificar otro codigo?
Talvez un poco mas visual:
Supongamos que tengo esta macro
Sub Macro_Original ()
Range ("a1") = 1 + 2
End sub
Necesito hacer una macro para ejecutarla desde otro libro que me modifique la Macro_Original y que ahora quede asi:
Sub Macro_Original ()
Range ("a1") = 1 + 2 - Range ("a2")
End sub
No sé si me logré explicar, de antemano muchisimas gracias por su valiosa ayuda, quedo atento, gracias!
Me sumo a tu petición. No creo que desde un archivo se pueda modificar una macro de otro archivo. Incluso no creo que se pueda modificar una macro del mismo archivo.
A ti te encantaría poder hacer un override de la función que tienes definida mediante un add-on. Pero creo que eso no se puede hacer en Excel.
Parece que lo que tú propones sería viable generando una librería dll, pero aun así tendrías que ir archivo por archivo configurando las referencias.
He hecho una búsqueda y algunas de las respuestas son memorables. En Stack Overflow uno contestaba algo así como:
"Short answer: No. Long answer: No."
Todo es posible, otra cosa es que sea recomendable o práctico hacerlo como método de actualización del código.
En esta página de Chip Pearson te explican cómo: http://www.cpearson.com/excel/vbe.aspx
Hay un ejemplo para quitar un módulo y otro para copiar un módulo de un proyecto a otro, así que esto te podría servir.
------
Ya sé Excel, pero necesito más.
(Vaya, me eliminaron el GIF, con lo bueno que era...)
Te recomiendo crearte un Excel personal, donde tengas tus macros, y lo unico que tienes que hacer en los otros libros es referenciar las macros "Locales" a la general, que podrás ir actualizando sin problemas.
Un saludo