¿Cómo puedo salvar mi nuevo libro de macros?

Tenía un libro con muchas hojas de formatos y datos y ahí mismo tenía todas las macros, incluyendo macros de seguridad que protegen y ocultan las hojas. Estas macros se activan:

  1. Cada vez que se salvan los datos
  2. Cada vez que el cliente se sale del sistema
  3. Cada vez que se cierra el Excel

El cliente ahora está probando el sistema y requiero tres cosas:

  1. Modificar frecuentemente las macros sin afectar sus hojas de datos
  2. Que sólo yo pueda seguir viendo el código de las macros
  3. Que sigan funcionando las macros de seguridad que ya funcionaban cuando tenía en un mismo libro las hojas de datos y las macros.

Copié las hojas y los datos a un libro por separado y copié las macros y los formularios a otro libro para poder modificar libremente el código sin afectar los datos.

El problema es que ahora que quiero salvar mi nuevo libro con las macros, por primera vez, para darle un nombre, me aparece el mensaje de error de:

Micosoft Visual Basic:

Se ha producido el error '9' en tiempo de ejecución:

Subíndice fuera de intervalo

Entiendo que se produce porque en el nuevo libro de macros no existe la hoja "INICIO" que es la única hoja que aparece cada vez que se salva el libro o cuando se cierra Excel.

¿Cómo puedo resolverlo y salvar el nuevo libro de macros?

Estoy seguro de que me podrán ayudar.

1 Respuesta

Respuesta

Deja ver si entiendo, tienes actualmente un libro con las macros que ejecuta acciones en otro libro. ¿Es así?

Así es, Marcos. Tenía un solo libro con hojas de datos y también con macros pero lo acabo de dividir en dos. Uno ahora tiene sólo macros y el otro sólo datos. El problema es que quiero conservar las macros de seguridad que protegen y ocultan las hojas cuando se salvan los datos o cuando el cliente se sale del sistema o cuando se cierra el Excel pero ahora que quiero salvar mi nuevo libro con las macros, por primera vez, para darle un nombre, me aparece el mensaje de error... 

Entonces el problema puede radicar en la dirección a la cual tu mandas ejecutar las acciones. Supongamos que hicieras un guardado a el libro llamado "libro 2 desde un libro llamado "libro 1". Si pusieras la sentencia: thisworkbooks.save se guardaría el libro 1. Debes poner workbooks("libro 2").save.

No se si me estoy explicando jeje, quiero dar a entender que probablemente tienes un error de direccionamiento de tus acciones.

Así es, Marcos. En realidad no sé cómo direccionar mis acciones. Creo que debo dejar unas cuantas macros de seguridad en el libro de datos para que se ejecuten al salvar el libro y al abrir y al cerrar Excel, pero creo que todas las demás macros las debo dejar en el libro de código.
Tampoco sé cómo seleccionar las macros de un libro o del otro, porque también el libro de código debe tener sus propias macros de seguridad con acciones un poco diferentes. No sé si me explico... :(

A la acción que deseas que se ejecute en el otro libro debes ponerle que va hacia el otro libro. Hace rato ponía el ejemplo de mandar a guardar el libro 2 desde el libro 1. Quedaría así workbooks("libro 2"). Save

Sí quieres hacer algo en una hoja pues también la agregas, p.ej. Workbooks("libro 2"). Sheets("hoja1").select 

Nota cómo siempre se le indica que debe ejecutarlo en el libro llamado "libro 2".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas