Macro para ocultar o eliminar otra macro

Estoy intentando conseguir una macro que me elimine u oculte otra.

En realidad lo que realmente necesito es una macro que luego de ejecutarla ya no este disponible en las vistas de macro de mi hoja de excel, bien sea que esta se cambie a Privada o que se borre por completo, no se si se pueda hacer con una rutina dentro de la misma macro o con otra macro diferente que pueda ser invocada, no he conseguido la alternativa, quien me pueda ayudar.

Respuesta
1

Aclara un poco más cómo se convoca o ejecuta la macro,, si con un botón, con un atajo de teclado, o son las que se ejecutan automáticamente al cambio o selección de celdas, etc.

Te adelanto que si tenés una macro en un módulo, para que no quede visible en la lista de macros de la hoja, debes iniciar el módulo con esta instrucción:

Option Private Module

Sub Tu_Macro()

'instrucciones

End Sub

Elsa, primero muchas Gracias por responder, resulta que lo que necesito es esto:

Abro el libro de excel, voy a programador, macros y me sale mi macro "Nuevo", ejecuto nuevo, y luego de ejecutarlo deseo que ya no aparezca en macros. Es decir requiero que o se elimine o se vuelva privada.

Sub nuevo()
   Sheets("Hoja1").Select
     Call Indexar
     'Aqui deseo una orden para que esta macro deje de estar visible o disponible
End Sub

No me importa si queda disponible, siempre que no este visible para los usuarios, ya que mi proyecto esta protegido con contraseña y el usuario no puede ver ni usar macros privadas.

Muchas Gracias, a ver que se puede hacer con eso ya no logro resolverlo jeje...

Lo que se puede hacer a continuación de tu macro es eliminar el 'módulo' que la contiene... esto significa que en ese módulo solo debes tener la macro 'nuevo'.

En mi ejemplo imaginé que se encuentra en el módulo 2:

Sub nuevo()
Sheets("Hoja1").Select
Call Indexar
'Aqui deseo una orden para que esta macro deje de estar visible o disponible
'x Elsamatilde: se elimina el módulo que contiene la macro 'nuevo'
With ActiveWorkbook.VBProject.VBComponents
.Remove .Item("Módulo2")
End With
End Sub

Si deseas eliminar el módulo que contiene la macro Indexar solo modificá el nombre del módulo, pero tené presente que se puede seguir ejecutando 'nuevo' y dará error por no encontrar la macro Indexar.

Nota: antes de ejecutar mi código debes verificar que tengas tildada la opción que te muestro en la imagen. Desde Opciones de Excel, Centro de confianza...

Sdos y no olvides valorar la respuesta recibida.

Te recuerdo que la consulta sigue abierta. Si el tema quedó resuelto no olvides valorarla para darla por cerrada.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas