Como ocultar y poner solo lectura para otros usuarios pero no para mí en Excel

Tengo un problema con una hoja de cálculo: Quiero compartir (ponerlo en una carpeta compartida) una tabla. Pero cuando lo comparta quiero que solo lo pueda modificar yo y que a mí me aparezca todo y que a los otros les aparezca solo modo lectura y algunos campos ocultos ¿eso sería posible?

Respuesta
2

[Hola Ana. Lo mejor es que lo protejas. Eso lo haces en la pestaña vista + Proteger Libro. 

Salu2 Carlos Arrocha

¡Vale gracias! ¡Eso haré!

hola, me ha surgido una duda con lo de proteger:

Mientras yo estoy trabajado en la hoja, pueden ver lo que estoy modificando desde otros ordenadores ??

[Hola Ana. Si, es posible

1 respuesta más de otro experto

Respuesta
1

Tambien podrias crear algun tipo usuario al entrar...

Le creas 2 usuarios, con nombre y pass.

Ejemplo :

*Invitado - sin clave

*Admin - con clave

Si entras con el invitado la hoja este bloqueada y si entras con el admin que este desbloqueada

Es una macro muy simple de hacer

espero te sirva mi idea, saludos. =)

Holaaaa no se si lo haré así pero me gustaría saber como se hace. Sé algo sobre VBA de Access pero en el Excel no se como se utiliza.

Sería de gran ayuda por alguna futura pregunta.

Gracias de antemano,

ANA

Aquí te dejo un link de descarga para que veas un ejemplo y lo puedas adaptar a tus planillas

El mismo esta referido a la hoja activa pero si deseas que bloquee alguna hoja en especial porque cuentas con varias solo basta con cambiar el "Activesheet" por el nombre de la hoja en el botón o simplemente en el "ThisWorkBook" hacer que cada ves que el libro inicie se sitúe sobre la hoja que deseas bloquear

Volviendo al ejemplo, si escribes invitado en el usuario se te habilitara el botón para iniciar con la hoja bloqueada, en cambio si escribes "admin" de usuario y "passana" de clave iniciaras con la hoja desbloqueada.. espero te sirva compañera =) un saludo y quedo a las ordenes si necesitas ayuda.

Saludos y no olvides comentar que tal te parecido y si te sirvió...

DESCARGAR HOJA DE EJEMPLO

Le agregue por error una línea 2 veces...

Te saldrá un error al entrar como invitado, porque el archivo ya inicia con la hoja bloqueada y no puede bloquear la hoja nuevamente je je puedes eliminar esa línea que te aparece en amarillo "Activesheet.protect "PASSANA" o agregar antes del IF esta línea "On error resume next"

Si agregas la segunda tendrás que guardar y volver a abrir el archivo =)

Me olvide de algo ja ja te voy a llenar la hoja de respuestas xD ja ja... pon el archivo en una carpeta compartida, pero no le des a compartir archivo al excel, eso te permitirá que varios puedan editar a la ves, pero bloqueara las macros que acabamos de crear =)

¡Muchas Graciasss! Funciona perfectamente =)

Hola otra vez, tengo un problemilla con el código. Cuando lo utilice por primera vez funcionaba correctamente pero cuando hemos puesto en marcha algunas veces me da error 1004 en tiempo de ejecución: No se puede asignar la propiedad visible de la clase worksheet.

No se porque me aparece, he intentado solucionarlo cambiando el código pero no he podido solucionarlo, sería de gran ayuda si me echaras una mano.

Este es el código que tengo:

Private Sub BtnLogueo_Click()

If TxtUser = "OPERARIO" Then       
ThisWorkbook.Protect "CONTRASEÑA"  
Hoja1.Protect "CONTRASEÑA"         
Hoja2.Protect "CONTRASEÑA"
Hoja3.Protect "CONTRASEÑA"
Hoja4.Protect "CONTRASEÑA"
Hoja5.Protect "CONTRASEÑA"

If Hoja1.Visible = True Then
Sheets("Tablas 1").Visible = xlSheetHidden
Sheets("Seg ACT").Visible = xlSheetHidden
Sheets("datos_naz").Visible = xlSheetHidden
End If
Unload Me

ElseIf TxtUser = "MARIBEL" And TxtPass = "MAIDER" then
ThisWorkbook.Unprotect "CONTRASEÑA"
'Hoja1.Unprotect "CONTRASEÑA"
Hoja2.Unprotect "CONTRASEÑA"                 
Hoja3.Unprotect "CONTRASEÑA"                
Hoja4.Unprotect "CONTRASEÑA"           
Hoja5.Unprotect "CONTRASEÑA"                 

Hoja1.Visible = True
Hoja2.Visible = True
Hoja3.Visible = True

Unload Me

Else
MsgBox "Nombre de usuario o contraseña incorrecta", vbExclamation = vbOKOnly
End If
End Sub

gracias de antemano

ANA

Dentro del operario sólo deja el UNLOAD ME Y pega dentro del módulo ThisWorkBook en modo open, el bloqueo de las hojas

Tu boton quedaria asi...

Private Sub BtnLogueo_Click()
If TxtUser = "OPERARIO" Then
    Unload Me
ElseIf TxtUser = "MARIBEL" And TxtPass = "MAIDER" Then
    ThisWorkbook. Unprotect "CONTRASEÑA"
    Hoja1. Unprotect "CONTRASEÑA"
    Hoja2. Unprotect "CONTRASEÑA"
    Hoja3. Unprotect "CONTRASEÑA"
    Hoja4. Unprotect "CONTRASEÑA"
    Hoja5. Unprotect "CONTRASEÑA"
    Hoja1.Visible = True
    Hoja2.Visible = True
    Hoja3.Visible = True
    Unload Me
Else
    MsgBox "Nombre de usuario o contraseña incorrecta", vbExclamation = vbOKOnly
End If
End Sub

y el modulo "ThisWorkBook" quedaria asi...

Private Sub Workbook_Open()
If ThisWorkbook.ProtectStructure = False Then
    Workbooks(1).Protect "CONTRASEÑA", True, True
End If
Hoja1. Protect "CONTRASEÑA"
Hoja2. Protect "CONTRASEÑA"
Hoja3. Protect "CONTRASEÑA"
Hoja4. Protect "CONTRASEÑA"
Hoja5. Protect "CONTRASEÑA"
End Sub

De esta forma al abrir el archivo se bloquea el libro y las hojas, si entras como operario permaneceran asi... en cambio si entras como MARIBEL se desbloquea el libro y las 5 hojas

Ah perdon agregle al codigo del thisworkbook que oculte las hojas jeje me falto ese pequeño detalle quedaria asi entonces...

Private Sub Workbook_Open()
If ThisWorkbook.ProtectStructure = False Then
    Workbooks(1).Protect "CONTRASEÑA", True, True
End If
Hoja1. Protect "CONTRASEÑA"
Hoja2. Protect "CONTRASEÑA"
Hoja3. Protect "CONTRASEÑA"
Hoja4. Protect "CONTRASEÑA"
Hoja5. Protect "CONTRASEÑA"
Hoja1.visible=xlsheetveryhidden
Hoja2.visible=xlsheetveryhidden
Hoja3.visible=xlsheetveryhidden
End Sub

La sigo enbarrando ja ja... no puedes ocultar una hoja con el libro bloqueado xD jajaja

Private Sub Workbook_Open()
If ThisWorkbook.ProtectStructure = False Then
    Hoja1.Visible = xlSheetVeryHidden
    Hoja2.Visible = xlSheetVeryHidden
    Hoja3.Visible = xlSheetVeryHidden
    ThisWorkbook.Protect "CONTRASEÑA", True, True
ElseIf ThisWorkbook.ProtectStructure = True Then
    ThisWorkbook.Unprotect "CONTRASEÑA"
    Hoja1.Visible = xlSheetVeryHidden
    Hoja2.Visible = xlSheetVeryHidden
    Hoja3.Visible = xlSheetVeryHidden
    ThisWorkbook.Protect "CONTRASEÑA", True, True
End If
Hoja1. Protect "CONTRASEÑA"
Hoja2. Protect "CONTRASEÑA"
Hoja3. Protect "CONTRASEÑA"
Hoja4. Protect "CONTRASEÑA"
Hoja5. Protect "CONTRASEÑA"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas