¿Cómo configurar las macros de forma predeterminada para que se ejecuten desde este libro de trabajo, NO desde todos los libros abiertos?

¿Cómo configurar las macros de forma predeterminada para que se ejecuten desde este libro de trabajo, NO desde todos los libros abiertos?

Tenemos un libro habilitado para macros (versión 2010) que usa mucha gente. Algunas de estas personas tienen macros en su libro Personal.xlsb. Tenemos una situación en la que la macro del libro compartido tiene el mismo nombre que una macro de los libros personales, pero hace cosas ligeramente diferentes.

Para evitar ejecutar la macro incorrecta, me gustaría configurar de forma predeterminada el libro compartido para ejecutar macros desde Este libro en lugar de Todos los libros abiertos. Espero colocar algo en WorkBook_Open(), pero ¿qué?

¿Hay alguna manera de cambiar la opción predeterminada para Macros en: All Open Workbooksa This Workbook?

Respuesta1

¿Pueden simplemente cambiar el nombre de la macro en el libro compartido y reemplazar las instancias de esa macro en ese libro específico?

Respuesta2

Si cambio el nombre de los módulos que contienen las subrutinas, puedo especificar exactamente a qué sub llamar.

Ejemplo:
en Modlue1, renombrado a LocalModule1, tengo:

Sub TestDupe()
    Call LocalModule1.DuplicateName
End Sub

Public Sub DuplicateName()
    ActiveSheet.UsedRange
    MsgBox ("new mod 1")
End Sub

En el Módulo2, renombrado como LocalModule2, tengo

Public Sub DuplicateName()
      ActiveSheet.UsedRange
      MsgBox ("mod 2")
End Sub

Al cambiar el calificador en la llamada de LocalModule1a LocalModule2, ahora puedo dictar qué subrutina del mismo nombre ejecutar.

información relacionada