Como bloquear archivo de Excel a ciertos usuarios - VBA excel

Podrían apoyarme de favor a ver la posibilidad de bloquear un archivo si el nombre de usuario de Excel no coincide con los que yo indique en el código VBA? Por ejemplo este es el usuario que esta en mi Excel:

Si yo ejecuto el archivo lo pueda visualizar sin problema, pero si el archivo se ejecuta en otra PC, con otro nombre de usuario en Excel, se bloquee o bien lance un msgbox y no permita visualizarlo

Podrían apoyarme

2 Respuestas

Respuesta
1

Hol.a

Puedes usar el evento "Open" del libro:

Private Sub Workbook_Open()
If Application.UserName <> "Victor Fuentes" Then
   MsgBox "Usuario errado"
   ThisWorkbook.Close False
   Exit Sub
End If
End Sub

Solo confirma bien el nombre del usuario de Office.

Abraham Valencia

PD: No olvides que no es difícil evadir ese tipo de "seguridad" si se sabe un poco de VBA.

Muchas gracias, solo para corroborar, para agregar a mas usuarios podría utilizar la función "and" por ejemplo?

If Application.UserName <> "Victor Fuentes" and "Usuario2" And "Usuario 3" Then

Y si no se inicio sesión en excel? marcaría "Msgbox"

G.racias!

Algo así en realidad:

Private Sub Workbook_Open()
If Application.UserName <> "Victor Fuentes" And Application.UserName <> "Abraham Valencia" Then
   MsgBox "Usuario errado"
   ThisWorkbook.Close False
   Exit Sub
End If
End Sub

Y si abren ese archivo en un Excel que no corresponde a esos usuarios, sale el "MsgBox" y se cierra el archivo.

Abraham Valencia

Abraham, en realidad el código funciona correctamente, pero si en el excel no hay ninguna cuenta iniciada si abre el documento.

¿Te refieres a un Office que no tiene usuario?

Abraham Valencia

PD: O que le han borrado el nombre de usuario

Así es, no haber iniciado sesión, por ejemplo que aparezca de esta manera.

Saludos!

Pregunta ¿es Office 2016 o un Office 365 ese que muestras?

Abraham Valencia

Cuento con 2016, de hecho estaba verificando el complemento "IRM" que me comento James Bond en esta pregunta y es necesario tener office 365, pero adicional encontré que el código que me facilitaste "Application.UserName" no hace referencia a la cuenta de Outlook iniciada en el excel, si no en "Archivo, Opciones, General, en el apartado que dice "Personalizar la copia de Microsoft Office", y en donde dice "Nombre de Usuario" es el usuario que toma. 

Muchas gracias por tu ayuda. un abrazo!

Como ejemplo tengo iniciada la sesión con mi cuenta de outlook en excel y en la ruta que comente le coloque como usuario  "Prueba 1" 

Por si a alguien en algún futuro le pueda servir.

Así es, cuando enviaste la segunda captura de pantalla me percate que necesitabas más que el nombre de usuario de Office, la cuenta conectada a Office pero igual te pregunté lo del Office para plantearte alguna alternativa.

En realidad con ese último ejemplo que has enviado no debería haber problema por si acaso ya que el VBA no mezcla/confunde la "cuenta de office" con el "nombre de usuario" así sean distintos, quizá el problema esté en como has colocado el código. ¿Cuál es?

Sobre el IRM, no es un complemento por si acaso, y sí puede usarse sin tener suscripción a Office 365 pero solo corre en versiones de Windows Server por si acaso.

Abraham Valencia

Solamente verificando el único inconveniente que podría haber es que puedan cambiar el nombre de usuario por uno que si esta permitido en el código vba, por ejemplo si el código se tiene de esta manera:

Private Sub Workbook_Open()
If Application.UserName <> "Victor Fuentes" And Application.UserName <> "Abraham Valencia" Then
   MsgBox "Usuario errado"
   ThisWorkbook.Close False
   Exit Sub
End If
End Sub

Por ende solo en las PC donde esta estos usuarios se podrá ejecutar el archivo, pero si en una PC de terceros tiene nombre de usuario "Jose Gonzalez" no podrán abrir el archivo, pero si se cambia por "Victor Fuentes" lo podrán visualizar. 

Así es, por eso en mi primer mensaje en mi PD coloqué "No olvides que no es difícil evadir ese tipo de "seguridad"...". No hay método infalible en Office. Claro puede hacer un poco más difícil la cosa si le colocas contraseña al proyecto VBA y así no podrán ver los usuarios autorizados en tu código. Podrías usar alguna serie de los discos duros quizá, será un poco más difícil de memorizar que un usuario.

Abraham Valencia

PD: OJO, la clave de VBA es más complicada de desproteger pero por ahí hay algunos que podrán.

Respuesta
1

Como sugerencia las versiones de office de la 2007 en delante traen un complemento descargable gratis para proteger el acceso y los derechos de autor hay tu puedes definir quien puede o no puede ver la informacion, si puede o no modificarla o copiarla o bien ponerle fecha de caducidad o si solo se puede ver en ciertos equipos, este complemento es gratis y lo descargas desde excel menu revisar, proteger libro, acceso restringido y lo instalas.

Amigo, me llamo la atención, podrías indicarme el nombre del complemento que indicas para buscarlo en la tienda de complementos, ya que en el Menu revisar, proteger libreo, no tengo no tengo la opción "Acceso restringido"

Saludos"

Esta es la pantalla que te debería aparecer IRM o Windows Right Management es como se llama

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas