En el entorno laboral, es esencial garantizar la seguridad de los documentos sensibles. Una forma de lograrlo es implementando medidas de seguridad antes de la impresión de documentos. Aunque existen impresoras con funciones de seguridad incorporadas, como la solicitud de un código de acceso para imprimir, en ocasiones podemos necesitar implementar estas medidas directamente desde Excel utilizando macros. En este artículo, exploraremos cómo lograr esta seguridad de nivel oficina en la impresión de documentos en Excel mediante el uso de macros.
Pedir contraseña al imprimir un archivo de Excel
¿Qué se necesita?:
Para implementar esta seguridad, solo necesitaremos un conocimiento básico de programación en VBA (Visual Basic for Applications) y acceso al entorno de desarrollo de Excel.

Pasos para implementar la seguridad:
- Creación del Formulario de Contraseña:
- Accedemos al entorno de desarrollo de Excel y creamos un nuevo formulario.
- Agregamos controles al formulario, como un cuadro de texto para ingresar la contraseña y botones para aceptar y cerrar.
- Manejo de Eventos en el Formulario:
- Asociamos eventos a los botones del formulario. Por ejemplo, al hacer clic en el botón “Aceptar”, capturamos la contraseña ingresada.
- Validación de Contraseña:
- Comparamos la contraseña ingresada con una contraseña predeterminada.
- Si la contraseña es correcta, permitimos la impresión del documento.
- Si la contraseña es incorrecta, mostramos un mensaje de error y cancelamos la impresión.
- Vinculación del Formulario con el Evento de Impresión:
- Utilizamos el evento
BeforePrintpara lanzar el formulario de contraseña antes de imprimir el documento.
- Utilizamos el evento
- Prueba y Ajustes:
- Probamos el funcionamiento del sistema de seguridad.
- Realizamos ajustes según sea necesario para mejorar la experiencia del usuario y la seguridad del sistema.
Código VBA de la macro
Código del Formulario
Private Sub CommandButton1_Click()
txtPassword = Me.TextBox1.Value
Unload Me
End Sub
Private Sub CommandButton2_Click()
txtPassword = Empty
Unload Me
End Sub
Private Sub UserForm_Click()
End Sub
Variables públicas
Public Const cPassword = "pass"
Public txtPassword As String
Detectar antes de Imprimir
Private Sub Workbook_BeforePrint(Cancel As Boolean)
UserForm1.Show
If txtPassword = cPassword Then
'imprime
Else
MsgBox "Password incorrecto", vbExclamation
Cancel = True
End If
End Sub
Suscríbete para más tutoriales
Descarga el archivo para practicar
Escribe tu correo electrónico para recibir gratis el archivo para practicar.
*Al enviar mi correo electrónico, acepto recibir noticias y ofertas. Puedo darme de baja en cualquier momento.
