Copiar libro junto con código VBA

Hola amigos.

Os hago una pregunta a ver si me podéis ayudar.

Tengo la siguiente instrucción en un botón para copiar un libro:

ActiveWorkbook.Sheets.Copy

Con esta instrucción quiero hacer una copia del documento que tengo abierto. Lo que veo con el VBAProject es que me genera una copia pero sin la carpeta de 'Modules' del documento original.

Cómo puedo hacer para que me copie todo, tanto la carpeta de 'Microsoft Excel Objects' como la carpeta de 'Modules'?

Espero que con esta escueta información os hagáis una idea de lo que necesito. En caso contrario no dudéis en pedirme más información.

Muchísimas gracias.

Un saludo.

Respuesta
1

Te propongo que hagas lo siguiente:

Partimos de un primer archivo que tiene macros y que es imprescindible que esté grabado previamente en nuestro disco. Con esta macro lo consigues y se quedan los dos archivos abiertos y el segundo archivo se queda grabado con el nombre elegido y la macro se encarga de ponerle la palabra "copia" al final del nombre. Todo está planificado trabajando con el directorio por defecto que tengas en tu excel.

Sub grabar_conMacros()

primero = ActiveWorkbook.Name

nombre = InputBox("que nombre quieres para la copia del archivo???")

If nombre = "" Then Exit Sub

ActiveWorkbook.SaveAs nombre & "copia"

Workbooks.Open primero

End Sub

Recuerda finalizar y puntuar

Hola Luis.

Lo primero gracias por tu respuesta.

En esta ocasión no he podido utilizar lo que me propones porque tengo problemas con el 'workbooks.open'. Al tener la excel dentro de un documento Word como un fichero adjunto, la ruta donde está el documento no es accesible y por tanto no puedo hacer referencia a ella porque no es una ruta lógica.

De todas formas, la solución que me propones me sirve de gran ayuda a futuro.

En esta ocasión lo que he hecho ha sido copiar todo el código VBA que tenía en las carpetas de Módulos en las sheets directamente, así me aseguro que cuando hago una copia de las sheets también me copia el código VBA que necesito.

Aunque la verdad es que me ha sorprendido que, igual que hay un 'ActiveWorkbook.sheets.copy' no haya un 'Activeworkbook.copy' el cual te copie todo el documento directamente, y así evitarte el tener que usar el SaveAs con lo que ello conlleva.

La verdad es que el caso es algo complicado.

Muchísimas gracias por todo, como siempre.

Un saludo.

Alfonso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas