Como evitar que un libro de excel sea copiado a cualquier unidad.

Necesito macro que evite copiar un libro de excel a cualquier unidad.

2 respuestas

Respuesta
1

La forma más simple es la siguiente, la primera macro siempre guardara los archivos en el disco duro y a la vez anulara el panel para seleccionar las unidades y directorios, lo único que tienes que definir es c:\test.xlsm por la unidad y directorio que uses, la desventaja es que tienes que dejarlo fijo porque no podrás grabar en ninguna otra carpeta, la segunda macro no lo deja convertir a PDF. Respecto a copiar el archivo desde windows hay dos opciones, la primera pones password del archivo, luego un segundo password contra escritura, después protecciones contra escritura en las hojas y por ultimo pero no menos inmportante le pones password al VBA, no te garantizo que no pueda romper las claves lo que si te aseguro por el tiempo que le va a invertir en conseguir los programas o aprender las técnicas que se va adesmotivar. La segunda opción es irte al menu revisar, luego a protección de libro, después a acceso restringido y descargar el complemento gratis de Excel que sirve para administrar derechos de autor y propiedad intelectual, este complemento impide que las copias no autorizadas sean abiertas o tu defines que derechos le das al usuario sobre las copias, escritura, vigencia, usar n veces o n días,

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ActiveWorkbook.SaveAs Filename:="C:\test.xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Cancel = True
End Sub
Private Sub Workbook_BeforeXmlExport(ByVal Map As XmlMap, ByVal Url As String, Cancel As Boolean)
Cancel = True
End Sub
Private Sub Workbook_Open()
End Sub
Respuesta
1

A través de macros no puedes evitar copiar un archivo, en todo caso eso depende de los niveles de seguridad de tu sistema operativo. Lo que sí puedes hacer es evitar, por ejemplo, que se abra dependiendo del usuario de Office, o del usuario de Windows o del IP, y algún etc. más.

Un ejemplo muy simple sería poner algo así en el evento "Open" del libro:

Sub Auto_Open()
If Application.UserName <> "Abraham Valencia" Then
MsgBox "Usuario no autorizado"
ActiveWorkbook.Close False
End If
End Sub

Eso sí, protege el "Proyecto VBA" con clave.

Abraham Valencia

PD: Las medidas de seguridad de Office no son infalibles, hay programas que pueden "romper" hasta la clave de VBA pero lo bueno es que el usuario "común" probablemente no pueda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas