Cambio de nombre en archivo bloquea la macro

Vi tu perfil en todo expertos, agradecería muchísimo tu ayuda con una macro de Excel.
El asunto es que hice una macro que trae unas fórmulas de otro archivo, digamos que las fórmulas están en el archivo: fórmulas y la macro en el archivo: salida.
Esto funciona a la perfección, pero NECESITO cambiar el nombre del archivo salida por cualquier otro y que la macro siga funcionando, ¿cómo podría hacerse?
Te adjunto el código que estoy empleando
 ChDir "C:\EC - AGRICOLAS\0Parametros"
    Workbooks.Open Filename:= _
        "C:\EC - AGRICOLAS\0Parametros\FTEC03 Estructura de costo Digital - Formulas.xls"
    Range("M9:Q13").Select
    Selection. Copy
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("M9").Select
    ActiveSheet. Paste
    Windows("FTEC03 Estructura de costo Digital - Fórmulas.xls").Activate
    Range("G21:G501").Select
    Selection. Copy
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("G21").Select
    ActiveSheet. Paste
    Windows("FTEC03 Estructura de costo Digital - Fórmulas.xls").Activate
    Range("O21:O501").Select
    Selection. Copy
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("O21").Select
    ActiveSheet. Paste
    Windows("FTEC03 Estructura de costo Digital - Fórmulas.xls").Activate
    Range("X21:X501").Select
    Selection. Copy
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("X21").Select
    ActiveSheet. Paste
    Windows("FTEC03 Estructura de costo Digital - Fórmulas.xls").Activate
    Range("AG21:AG501").Select
    Selection. Copy
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("AG21").Select
    ActiveSheet. Paste
    Windows("FTEC03 Estructura de costo Digital - Fórmulas.xls").Activate
    Range("AP21:AP501").Select
    Selection. Copy
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("AP21").Select
    ActiveSheet. Paste
    Windows("FTEC03 Estructura de costo Digital - Fórmulas.xls").Activate
    Range("AY21:AY501").Select
    Selection. Copy
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("AY21").Select
    ActiveSheet. Paste
    Windows("FTEC03 Estructura de costo Digital - Fórmulas.xls").Activate
    Range("BH21:BH501").Select
    Selection. Copy
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("BH21").Select
    ActiveSheet. Paste
    Windows("FTEC03 Estructura de costo Digital - Fórmulas.xls").Activate
    Range("BQ21:BQ501").Select
    Selection. Copy
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("BQ21").Select
    ActiveSheet. Paste
    Windows("FTEC03 Estructura de costo Digital - Fórmulas.xls").Activate
    Range("BZ21:BZ501").Select
    Selection. Copy
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("BZ21").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Workbooks("FTEC03 Estructura de costo Digital - Formulas.xls").Close SaveChanges:=False
    Windows("FTEC03 Estructura de costo Digital.xls").Activate
    Range("A1").Select
End Sub
Como veras, si cambio el nombre del archivo "FTEC03 Estructura de costo Digital.xls" la macro deja de funcionar
De antemano te agradezco cualquier colaboracion.
<span class="ad">[color=#888888] [/color]
</span>

1 respuesta

Respuesta
Ver tu código de la macro me ha recordado 'viejos tiempos', hace mucho tiempo que no programo pero intentaré ayudarte en lo que pueda.
De entrada veo dos ERRORES MUY GRAVES, estas usando nombres de ficheros muy largos, con espacios en blancos y con guiones; se que te funciona porque es windows y por lo menos debe ser XP pero si te lo llevas a un Windows 2000 u otro sistema operativo JAMAS te funcionará.
En programación, siempre hay que usar nombres cortos, sin espacios y sin caracteres 'raros o conflictivos'. Por ejemplo:
FTEC03 Estructura de costo Digital - Fórmulas.xls (mal) ---> FTEC03_ECD_F.xls (bien)
FTEC03 Estructura de costo Digital.xls (mal) ---> FTEC03_ECD.xls (bien)
No es una reprimenda a tu programación sino un consejo que en más de una ocasión agradecerás cuando tengan problemas 'raros' y no sepas por que se producen.
El tema de modificar ficheros en una macro una vez creada es más bien nula, me temo que tendrás que volver a crear la macro nuevamente y usar los nombres que tu quieres poner, es debido a una limitación del propio Excel. Puedes probar primero en hacer una copia de los dos ficheros con el nombre que deseas y después vas a la macro y modificas los nombres 'antiguos' con el nuevo que has creado.
Comentame alguna cosa.
Gracias por el consejo, lo tendré en cuenta para replantear esto.
De todas formas, mi problema es que NO se que nombre va a tener el archivo de destino.
Mira, el archivo: "FTEC03 Estructura de costo Digital.xls" lo tengo que enviar a diversas personas, ellos le cambian el nombre (lo ponen un nombre arbitrario) y me lo reenvían. Yo quiero usar la macro para "traer" las fórmulas del archivo "FTEC03 Estructura de costo Digital - Fórmulas.xls al archivo que ellos ya trabajaron.
Yo pienso (aunque no se mucho del tema), que debe haber un comando que me permita que la macro se ejecute sobre el archivo, independientemente al nombre que tenga; fíjate que la macro la estoy ejecutando en el archivo que cambia de nombre.
Gracias por tu colaboración y por responder tan pronto.
Me sabe mal no poderte ayudar más, no tengo más conocimientos sobre este tema.
Si te parece bien, lo 'descarto' para que se vuelva a publicar nuevamente y otro experto te pueda ayudar mejor.

Añade tu respuesta

Haz clic para o