Impedir modificar macro excel por medio de otra macro
Hola, tengo una pregunta que no le encuentro respuesta.
Tengo una macro en excel donde he deshabilitado copiar, cortar, pegar, pegado especial, guardar, guardar como y arrastrar y soltar para proteger los datos de la misma y evitar que se lleven el contenido de los reportes y funciona de maravilla.
El pero esta en que como soy demasiado necio y predico el lema de "si se puede hacer" pensé más allá del usuario común y me desplace al de programador.
¿Qué pensé?, sencillo, alterar el funcionamiento de la macro protegida con otra macro en un simple libro.
Por ejemplo, tengo el "libro1.xls" y este tiene una restricción para evitar arrastrar y soltar
Application.CellDragAndDrop = false
Pero hice un nuevo libro "libro2.xls" y realize un procedimiento en un modulo y coloque esto:
Application.Workbooks("libro1.xls").Application.CellDragAndDrop = True
Ejecute dicho procedimiento desde "libro2.xls" y no altero nada, pero al hacerlo desde "libro1.xls" logre lo que pensé, alterar el funcionamiento de la macro original que deshabilitaba arrastrar y soltar y habilitarla nuevamente.
¿Cómo puedo evitar eso?
Es evidente que si se logro hacer eso también podría habilitar copiar, pegar, cortar, pegado especial etc etc del libro protegido y no salgo de nada.
¿Hay alguna forma de evitar alterar el funcionamiento de una macro desde otra macro?
Tengo una macro en excel donde he deshabilitado copiar, cortar, pegar, pegado especial, guardar, guardar como y arrastrar y soltar para proteger los datos de la misma y evitar que se lleven el contenido de los reportes y funciona de maravilla.
El pero esta en que como soy demasiado necio y predico el lema de "si se puede hacer" pensé más allá del usuario común y me desplace al de programador.
¿Qué pensé?, sencillo, alterar el funcionamiento de la macro protegida con otra macro en un simple libro.
Por ejemplo, tengo el "libro1.xls" y este tiene una restricción para evitar arrastrar y soltar
Application.CellDragAndDrop = false
Pero hice un nuevo libro "libro2.xls" y realize un procedimiento en un modulo y coloque esto:
Application.Workbooks("libro1.xls").Application.CellDragAndDrop = True
Ejecute dicho procedimiento desde "libro2.xls" y no altero nada, pero al hacerlo desde "libro1.xls" logre lo que pensé, alterar el funcionamiento de la macro original que deshabilitaba arrastrar y soltar y habilitarla nuevamente.
¿Cómo puedo evitar eso?
Es evidente que si se logro hacer eso también podría habilitar copiar, pegar, cortar, pegado especial etc etc del libro protegido y no salgo de nada.
¿Hay alguna forma de evitar alterar el funcionamiento de una macro desde otra macro?
1 Respuesta
Respuesta de Elsa Matilde
1