[RESUELTO] Macro proteger celdas-desproteger hoja

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Ariadna
Mensajes: 6
Registrado: Jue Mar 07, 2019 12:20 pm

[RESUELTO] Macro proteger celdas-desproteger hoja

Mensaje por Ariadna »

Hola.
Llevo meses trabajando en Calc con una hoja en la que tiene dos botones (uno para proteger y otro para desproteger la hoja en la que al accionarle el botón aparece un intput box en la que hay que introdicirle una pasword para dersprotegerla), asociadas a la macro siguiente:

REM ***** BASIC *****

Const Clave = "laquesea"

Sub Protege
ProtegerHojas
End Sub

Sub Desprotege
DesProtegerHojas
End Sub

Sub ProtegerHojas
dim oDoc as object, x as object

oDoc = StarDesktop.CurrentComponent
if oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument") then
for each x in ThisComponent.Sheets()
x.Protect( clave )
next
msgbox "Hoja protegida", 48, "Aviso de seguridad"
end if

end sub

Sub DesProtegerHojas
dim oDoc as object
dim pasword as string

oDoc = StarDesktop.CurrentComponent
pasword = inputbox ("Ingrese Clave", "Desproteger hoja")


if pasword = "" then ' Si presiono Cancelar
exit sub
end if

if clave <> pasword then ' Si presiono Aceptar
msgbox "Clave incorrecta" & chr(13) & "Avise al administrador de la Hoja", 16, "Error de ingreso"
else
oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument")
for each x in ThisComponent.Sheets()
x.UnProtect( clave )
exit sub
next
msgbox "Hoja desprotegida", 64, "Aviso de seguridad"
end if


end sub

Ante mi torpeza en estos temas y despues de buscar y leer y releer por todos lados, no consigo modificar la macro para hacer que en vez de proteger la hoja, cada vez que se apriete el boton de proteger la hoja, lo que haga es que proteja solo las celdas que contengan datos para que no se puedan modificar o sobreescribir sobre ellas, dejando todas las demás libres para que se puedan seguir introduciendo datos en las mismas. Todo ello lo necesito debido a que hasta ahora en la empresa en la que trabajo solo yo era quien manejaba dicho archivo de introducción de datos, pero hace poco tiempo comenzaron a trabajar varias personas, las cuales nos hacemos el relevo unas a otras y sería conveniente esa medida de protección para que no se puedan modificar los datos que se hayan ido introducido, ya que cada persona, al finalizar su turno de trabajo, apretaría el botón y quedaría protegido todo dato anteriormente escrito. No se si se podrá realizar lo que estoy comentando, pero ante todo, perdonad por todo este rollo que acabo de escribir y muchas gracias por vuestra ayuda. Un saludo cordial.-
Última edición por Ariadna el Mar Mar 12, 2019 8:56 pm, editado 4 veces en total.
OpenOffice 4.1.5 - Windows 10
Avatar de Usuario
PepeOooSevilla
Mensajes: 1480
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Macro proteger celdas-desproteger hoja

Mensaje por PepeOooSevilla »

Hola.

Te damos la bienvenida al Foro de OpenOffice / LibreOffice y, por favor, no dejes de leer la Guía de supervivencia.

Aunque una celda tenga marcado la opción "Protegida" en "Formato > Celdas...> Pestaña Protección de celda" esa protección no es efectiva hasta que se proteja la hoja activa en "Herramientas > Proteger hoja...". Y una hoja protegida sólo puede tener una contraseña de protección.

Si sois varias personas accediendo a la misma hoja no os queda más remedio que compartir la contraseña con lo que "se pierde" esa posible protección.

Saludos cordiales.
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Ariadna
Mensajes: 6
Registrado: Jue Mar 07, 2019 12:20 pm

Re: Macro proteger celdas-desproteger hoja

Mensaje por Ariadna »

Hola.
Gracias por tu rápida respuesta. Tengo que decirte que, aunque las otras empleadas puedan introducir datos, yo soy la única persona encargada de gestionar dicho archivo y por lo tanto quien sabe la contraseña, además de comenzar a trabajar con él en el turno de la mañana. Dicho archivo, al día siguiente a primera hora, lo envío a otro departamento en el que analizan los datos a efectos de estadística y comienzo con otro de esa jornada. Lo que se necesita es que cada persona, cuando finalice su turno, (tanto de mañana, tarde o noche) y le de al botón de proteger se queden todas las celdas con datos protegidas para que quien le sustituya no pueda alterar lo escrito por la anterior y en las libres se pueda seguir escribiendo por parte de la siguiente persona que comience a trabajar. También he podido comprobar que, al añadirle otra o varias hojas al archivo, la macro no trabaja en ninguna de ellas sino en la primera de las hojas y tampoco se como solucionarlo. Muchas gracias y esperando tu pronta respuesta y ayuda, recibe de mi parte un cordial saludo.-
OpenOffice 4.1.5 - Windows 10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Macro proteger celdas-desproteger hoja

Mensaje por mauricio »

Es una mala idea, pero... ¿tienen que trabajar forzosamente en el mismo archivo?...

1.- "Todas" las celdas de una hoja, están de forma predeterminada "protegidas", pero, como ya te indico mi amigo, esta solo es efectiva al proteger la hoja.
2.- Según entiendo, requieres que estén todas desprotegidas, y "conforme se vayan usando" se vayan protegiendo, o al final, proteger todas las celdas con datos. ¿Es correcto?

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Ariadna
Mensajes: 6
Registrado: Jue Mar 07, 2019 12:20 pm

Re: Macro proteger celdas-desproteger hoja

Mensaje por Ariadna »

Hola.
Con respecto a tu pregunta, si, tenemos que trabajar todos con el mismo archivo y por otro lado, efectivamente, necesito que en principio estén todas desprotegidas y que se vayan protegiendo las celdas que solo contengan datos cada vez que se pulse el boton de proteger. Al desprotegerlos no habría poblema ya que al pulsar el boton de desproteger, aparecería el input box en el que pondría la contraseña y al desprotegerse la hoja, quedarían desprotegidas las celdas. Un saludo cordial.-
OpenOffice 4.1.5 - Windows 10
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Macro proteger celdas-desproteger hoja

Mensaje por fornelasa »

No sé si te he entendido bien, en este archivo puedes escribir datos en las celdas desprotegidas y después protegerlas pulsando el botón macro.
Saludos, Federico..
Adjuntos
ProtegerCelda.ods
proteger celda
(12.64 KiB) Descargado 336 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Ariadna
Mensajes: 6
Registrado: Jue Mar 07, 2019 12:20 pm

Re: Macro proteger celdas-desproteger hoja

Mensaje por Ariadna »

Hola.
Muchas gracias por la rápida respuesta. La macro es casi perfecta para lo que necesito. Lo único es que yo le tenía puesto una input box en la que le ponia la contraseña y se desprotegía la hoja. Hice una prueba y le asocié un botón a la macro existente en el "module1" que se llama "DesProtegerHojas" y cuando lo aprieto desbloquea la hoja sin tener que ponerle la contraseña, por lo que cualquiera que apriete dicho botón, en cualquier turno de trabajo, dejaría los datos desbloqueados, por lo que es muy necesario que solo yo le pueda poner la contraseña para desbloquearla. También comprobé que la macro pudiera funcionar en otra hoja que le añadí y no funciona. Muchas gracias por vuestra ayuda y un saludo muy cordial.-
OpenOffice 4.1.5 - Windows 10
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Macro proteger celdas-desproteger hoja

Mensaje por fornelasa »

A ver vamos a ver, primero, no creo sea necesario hacer todo eso de desproteger, mira el archivo ejemplo, trabaja sobre él e intenta desprotegerlo, creo ahora yo tengo el control.
Si no lo puedes desproteger avisame y te mando la contraseña.
 Editado: Sí no puedes desproteger la hoja del archivo, entonces ¿estaras de acuerdo que solo yo puedo desproteger dicha hoja? 
Saludos, Federico.
Adjuntos
ProtegerCelda.ods
proteger celda
(15.16 KiB) Descargado 287 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Ariadna
Mensajes: 6
Registrado: Jue Mar 07, 2019 12:20 pm

Re: Macro proteger celdas-desproteger hoja

Mensaje por Ariadna »

Hola.
Federico, te doy las gracias por tu rápida y eficaz respuesta. Efectivamente, no puedo desproteger la hoja. Intenté incluso hacerlo a través de "Herramientas"-->"Macros"-->"Organizar macros"-->"OpenOffice Basic..." y al ir a "ProtegerCelda.ods"--> "Library1" me pedía la contraseña. La macro está ahora perfecta para lo que necesito. Lo único que me falta es que la macro se pueda aplicar en varias hojas a la vez, por lo que pregunto:¿sabrías poner en la macro dicho proceso?. Esperando tu respuesta te doy muchísimas gracias por tu inestimable ayuda y un saludo muy cordial.-
P.D.: Por favor, dime la contraseña. Gracias.-
OpenOffice 4.1.5 - Windows 10
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Macro proteger celdas-desproteger hoja

Mensaje por fornelasa »

A ver mira con este ejemplo:
la clave es:
forotv

Saludos, Federico.
Adjuntos
ProtegerCelda(2).ods
Proteger celda
(16.27 KiB) Descargado 374 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Ariadna
Mensajes: 6
Registrado: Jue Mar 07, 2019 12:20 pm

Re: Macro proteger celdas-desproteger hoja

Mensaje por Ariadna »

Hola. La macro es perfecta para lo que necesito. Muchísimas gracias a Federico y a todos por toda vuestra ayuda. Un saludo muy afectuoso.-
OpenOffice 4.1.5 - Windows 10
Responder