Ejecutar macros en hoja protegida
-
- Mensajes: 8
- Registrado: Jue Nov 29, 2012 1:27 am
Ejecutar macros en hoja protegida
Estimados amigos tengo un pequeño problema que espero que puedan ayudarme a solucionar.
He creado una hoja de cálculo en la que hay unos datos protegidos permanentemente pero otros que quiero que mediante dos botones uno protega una serie de celdas y otro las desproteja. de manera que esos datos que inserta el usuario puedan bloquearse y desbloquearse independientemente del contenido de la hoja
que esta protegida totalmente para que no se destrozen las formulas que yo cree. la intención es que el usuario solo pueda tocar esos dos botones, que son con los cuales el bloquea y desbloquea las cifras que el inserto sin tener que desbloquear la hoja entera, ya que entonces correra riesgo lo que hice anteriormente.
Pero el problema es que me da un error al ejecutar la macro.
en office se que hay que meter un comando en virtual bassic, pero en openoffice no se que comando hay que meterlo y donde.
el comando que hay que meter en virtualbasic de office es
activesheet.unprotect "contraseña"
activesheet.protect "contraseña"
con ello consigo que en office antes de ejecutar la macro desproteja la hoja, ejecute la macro y la proteja de nuevo, pero en open office
nose como se hace, por favor les agradecería que me ayudaran a solucionar este problema!!! un saludo!!!gracias!!!
He creado una hoja de cálculo en la que hay unos datos protegidos permanentemente pero otros que quiero que mediante dos botones uno protega una serie de celdas y otro las desproteja. de manera que esos datos que inserta el usuario puedan bloquearse y desbloquearse independientemente del contenido de la hoja
que esta protegida totalmente para que no se destrozen las formulas que yo cree. la intención es que el usuario solo pueda tocar esos dos botones, que son con los cuales el bloquea y desbloquea las cifras que el inserto sin tener que desbloquear la hoja entera, ya que entonces correra riesgo lo que hice anteriormente.
Pero el problema es que me da un error al ejecutar la macro.
en office se que hay que meter un comando en virtual bassic, pero en openoffice no se que comando hay que meterlo y donde.
el comando que hay que meter en virtualbasic de office es
activesheet.unprotect "contraseña"
activesheet.protect "contraseña"
con ello consigo que en office antes de ejecutar la macro desproteja la hoja, ejecute la macro y la proteja de nuevo, pero en open office
nose como se hace, por favor les agradecería que me ayudaran a solucionar este problema!!! un saludo!!!gracias!!!
open office 3.4.1, windows xp
Re: Ejecutar macros en hoja protegida
Nota: he movido el tema al foro de Calc, ya que el de «Comentarios del sitio» es para problemas relacionados con el foro en sí, no con el programa. También eliminé los mensajes duplicados a este: uno solo es suficiente. Si no lo has hecho aún por favor lee la Guía de supervivencia que además de reunir las reglas del foro, da consejos sobre cómo presentar correctamente un problema.
¿Has leído el libro de Mauricio: Apuntes de OOo Basic?
También sería importante que informaras cuál es exactamente el error y que muestres el código que estás usando.
¿Has leído el libro de Mauricio: Apuntes de OOo Basic?
También sería importante que informaras cuál es exactamente el error y que muestres el código que estás usando.
No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas
LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
Re: Ejecutar macros en hoja protegida
Esos temas estan tratados en mi libro que ya te enlazo mi amigo Ricardo...
Saludos
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Ejecutar macros en hoja protegida
Hola...
Sin duda debes leer el libro de Mauricio, es un aporte invaluable a la programación de macros con oobasic.
Considero hacen falta mas detalles de tu consulta, aqui un ejemplo preliminar de proteger y desproteger hojas con macro. Asumo que la contraseña es letmein2
Mira por favor el archivo ejemplo.
Saludos, Federico.
Sin duda debes leer el libro de Mauricio, es un aporte invaluable a la programación de macros con oobasic.
Considero hacen falta mas detalles de tu consulta, aqui un ejemplo preliminar de proteger y desproteger hojas con macro. Asumo que la contraseña es letmein2
Código: Seleccionar todo
Sub ProtegerHoja1U()
Dim oHojaActiva As Object
oHojaActiva = ThisComponent.getCurrentController().getActiveSheet()
oHojaActiva.Protect( "letmein2" )
MsgBox "Hoja Protegida"
End Sub
'------------------------------------------------------------------------------------------------------
Sub DesprotegerHoja1U()
On Error GoTo Mensaje
Dim oHojaActiva As Object
oHojaActiva = ThisComponent.getCurrentController().getActiveSheet()
oHojaActiva.unProtect( "letmein2" )
MsgBox "Hoja Desprotegida"
exit sub
Mensaje:
MsgBox "Clave Incorrecta"
End Sub
Saludos, Federico.
- Adjuntos
-
- ProtegerDes Hoja.ods
- Macro Proteger y Desproteger Hoja
- (9.87 KiB) Descargado 1526 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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
-
- Mensajes: 8
- Registrado: Jue Nov 29, 2012 1:27 am
Re: Ejecutar macros en hoja protegida
Buenas tardes,
En primer lugar quería agradecer la rápida repuesta a mi comentario.
Ví el libro de Mauricio y estuve buscando la respuesta en él pero no tengo demasiado tiempo para explorar todo el libro y no di con ella.
no me da ningún error, de ejecución de macro, solo me dice "las celdas protegidas no pueden ser modificadas" pero yo en Microsoft Office
metiendo un comando en virtual basic consigo desbloquear la hoja, ejecutar la macro y bloquearla de nuevo.
la macro es la siguiente:
Le agradecería que ayudaran a solucionar este problema. Gracias y un saludo.
En primer lugar quería agradecer la rápida repuesta a mi comentario.
Ví el libro de Mauricio y estuve buscando la respuesta en él pero no tengo demasiado tiempo para explorar todo el libro y no di con ella.
no me da ningún error, de ejecución de macro, solo me dice "las celdas protegidas no pueden ser modificadas" pero yo en Microsoft Office
metiendo un comando en virtual basic consigo desbloquear la hoja, ejecutar la macro y bloquearla de nuevo.
la macro es la siguiente:
Código: Seleccionar todo
sub macro25
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$C$4:$F$14"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(3) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Protection.Locked"
args2(0).Value = false
args2(1).Name = "Protection.FormulasHidden"
args2(1).Value = false
args2(2).Name = "Protection.Hidden"
args2(2).Value = false
args2(3).Name = "Protection.HiddenInPrintout"
args2(3).Value = false
dispatcher.executeDispatch(document, ".uno:Protection", "", 0, args2())
end sub
open office 3.4.1, windows xp
Re: Ejecutar macros en hoja protegida
Hola...
Por favor olvídate un poco de VBA y de OOBASIC y di que deseas hacer.
Entendí esto:
1) Inicias de una hoja ya protegida.
2) La desbloqueas.
3) Haces "algo" con una macro.
4) Vuelves a proteger la hoja.
¿Es así?
¿Que pasa con el rango C4:F14, debe quedar desbloqueado o bloqueado junto con la hoja?
Con el pendiente anterior, aquí un ejemplo suponiendo que la contraseña es letmein2
Saludos, Federico.
Por favor olvídate un poco de VBA y de OOBASIC y di que deseas hacer.
Entendí esto:
1) Inicias de una hoja ya protegida.
2) La desbloqueas.
3) Haces "algo" con una macro.
4) Vuelves a proteger la hoja.
¿Es así?
¿Que pasa con el rango C4:F14, debe quedar desbloqueado o bloqueado junto con la hoja?
Con el pendiente anterior, aquí un ejemplo suponiendo que la contraseña es letmein2
Código: Seleccionar todo
sub HacerTarea
document = ThisComponent.CurrentController
document.select(document.activesheet.getcellrangebyname("C4:F14"))
'--------------------------------------------------------------------------------------------------
Dim oHojaActiva As Object
oHojaActiva = ThisComponent.getCurrentController().getActiveSheet()
oHojaActiva.unProtect( "letmein2" )
MsgBox "Aqui tu macro"
ProtegerHoja
end sub
'--------------------------------------------------------------------------------------------------
Sub ProtegerHoja()
Dim oHojaActiva As Object
oHojaActiva = ThisComponent.getCurrentController().getActiveSheet()
oHojaActiva.Protect( "letmein2" )
MsgBox "Hoja Protegida"
End Sub
'------------------------------------------------------------------------------------------------------
Saludos, Federico.
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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
-
- Mensajes: 8
- Registrado: Jue Nov 29, 2012 1:27 am
Re: Ejecutar macros en hoja protegida
Hola Federico, Te cuento:
Parto de una hoja protegida pero hay un rango de celdas que quiero dejar que sea el usuario que proteja y desproteja con una macro. Habrá un botón pues para bloquear el rango de datos que comente y otro para desbloquear el rango de datos ( el resto de la hoja y las fórmulas estan protegidas).
Entonces quiero crear una macro que:
1. Desproteja la hoja.
2. Ejecute la macro.
3. protega la Hoja.
Cuando ejecuto la macro en la que hay que desproteger los datos (rango del que hable antes) me dice que las celdas protegidas no se puede modificar
como es normal, pero se que a través del ooo basic al igual que en microsoft office que lo hice se puede meter un comando para que al darle a ese botón
haga el procedimiento que te describí antes.
Un saludo y mil gracias por la ayuda.
Parto de una hoja protegida pero hay un rango de celdas que quiero dejar que sea el usuario que proteja y desproteja con una macro. Habrá un botón pues para bloquear el rango de datos que comente y otro para desbloquear el rango de datos ( el resto de la hoja y las fórmulas estan protegidas).
Entonces quiero crear una macro que:
1. Desproteja la hoja.
2. Ejecute la macro.
3. protega la Hoja.
Cuando ejecuto la macro en la que hay que desproteger los datos (rango del que hable antes) me dice que las celdas protegidas no se puede modificar
como es normal, pero se que a través del ooo basic al igual que en microsoft office que lo hice se puede meter un comando para que al darle a ese botón
haga el procedimiento que te describí antes.
Un saludo y mil gracias por la ayuda.
open office 3.4.1, windows xp
Re: Ejecutar macros en hoja protegida
Hola...
Aqui en este archivo un primer intento.
A) Partimos de una hoja totalmente protegida ( contraseña: letmein2 )
B) CON EL BOTON DESPROTEGER
1) Unicamente desbloquemos el rango C4:F14
2) Corremos la macro (en este caso pide un dato y lo almacenamos en las celdas C4, C14, F4, F14, D9, E9)
3) El rango C4:F14 queda desbloqueado hasta que el usuario pulsa:
C) BOTON PROTEGER
Hay que adaptarlo a tus necesidades.
Saludos, Federico.
Aqui en este archivo un primer intento.
A) Partimos de una hoja totalmente protegida ( contraseña: letmein2 )
B) CON EL BOTON DESPROTEGER
1) Unicamente desbloquemos el rango C4:F14
2) Corremos la macro (en este caso pide un dato y lo almacenamos en las celdas C4, C14, F4, F14, D9, E9)
3) El rango C4:F14 queda desbloqueado hasta que el usuario pulsa:
C) BOTON PROTEGER
Hay que adaptarlo a tus necesidades.
Saludos, Federico.
- Adjuntos
-
- ProtegerDesproteger.ods
- Desproteger Rango y Proteger Rango
- (9.36 KiB) Descargado 767 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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
-
- Mensajes: 8
- Registrado: Jue Nov 29, 2012 1:27 am
Re: Ejecutar macros en hoja protegida
Buenas tardes federico.
Vi su archivo, la verdad es que lo que pretendo es que inicialmente la hoja este protegida pero que ese rango este abierto desde el principio (es decir en formato de celdas ese rango tenga desmarcada la opción proteger, y la macro a través de esos botones sea la que proteja y desproteja el rango.
Cuando le doy a desproteger hoja, sale una ventana emergente que pone valor a introducir en el rango y pide que metamos una cifra.
Me gustaría que tal y como hice en office el desbloqueo y el bloqueo se realize sin ninguna ventana emergente y sin que pida claves o valores.
Muchas gracias por tu ayuda y un saludo.
Vi su archivo, la verdad es que lo que pretendo es que inicialmente la hoja este protegida pero que ese rango este abierto desde el principio (es decir en formato de celdas ese rango tenga desmarcada la opción proteger, y la macro a través de esos botones sea la que proteja y desproteja el rango.
Cuando le doy a desproteger hoja, sale una ventana emergente que pone valor a introducir en el rango y pide que metamos una cifra.
Me gustaría que tal y como hice en office el desbloqueo y el bloqueo se realize sin ninguna ventana emergente y sin que pida claves o valores.
Muchas gracias por tu ayuda y un saludo.
open office 3.4.1, windows xp
Re: Ejecutar macros en hoja protegida
Hola...
En mensajes previos indicas que realizas una tarea pero no indicas exactamente que tarea, en el archivo que envié la tarea la asumí yo como ejemplo, esa tarea es pedir un valor e introducir ese valor en las 6 celdas que indiqué previamente, entiendo que eso no es lo que deseas hacer por lo tanto sustituye ese codigo por tu tarea especifica.
Dices que manipulas un rango, tampoco dices que rango, yo asumi el rango C4:F14, si no es tu rango, entonces cambialo por tu rango correcto.
Dices que como le hiciste en office y no envias archivo ejemplo de como le hiciste en office.
Para que desde el inicio el rango este desprotegido y todo lo demas protegido solo debes pulsar una vez el boton desproteger y grabar el archivo, insisto la peticion de un valor es la tarea que yo asumi ante la falta de indicacion de la tarea de parte tuya.
Archivo segundo intento, mientras se aportan mas datos.
Saludos, Federico.
En mensajes previos indicas que realizas una tarea pero no indicas exactamente que tarea, en el archivo que envié la tarea la asumí yo como ejemplo, esa tarea es pedir un valor e introducir ese valor en las 6 celdas que indiqué previamente, entiendo que eso no es lo que deseas hacer por lo tanto sustituye ese codigo por tu tarea especifica.
Dices que manipulas un rango, tampoco dices que rango, yo asumi el rango C4:F14, si no es tu rango, entonces cambialo por tu rango correcto.
Dices que como le hiciste en office y no envias archivo ejemplo de como le hiciste en office.
Para que desde el inicio el rango este desprotegido y todo lo demas protegido solo debes pulsar una vez el boton desproteger y grabar el archivo, insisto la peticion de un valor es la tarea que yo asumi ante la falta de indicacion de la tarea de parte tuya.
Archivo segundo intento, mientras se aportan mas datos.
Saludos, Federico.
- Adjuntos
-
- ProtegerDesproteger.ods
- Seg Intento
- (8.98 KiB) Descargado 474 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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
-
- Mensajes: 8
- Registrado: Jue Nov 29, 2012 1:27 am
Re: Ejecutar macros en hoja protegida
Buenas tardes Federico.
En mi macro no quiero que realice ninguna tarea, solo quiero que desbloquee la hoja protegida, desbloquee el rango, y proteja la hoja protegida (boton desproteger). En el botón proteger desbloqueara la hoja protegida, protegerá el rango, y protegerá la hoja, pero todo ello sin que aparezca ninguna ventana emergente.
Te paso un archivo excel 2007 por que creo que no entiendes bien a lo que me refiero así que te paso una hoja de cálculo como ejemplo.
Un saludo.
En mi macro no quiero que realice ninguna tarea, solo quiero que desbloquee la hoja protegida, desbloquee el rango, y proteja la hoja protegida (boton desproteger). En el botón proteger desbloqueara la hoja protegida, protegerá el rango, y protegerá la hoja, pero todo ello sin que aparezca ninguna ventana emergente.
Te paso un archivo excel 2007 por que creo que no entiendes bien a lo que me refiero así que te paso una hoja de cálculo como ejemplo.
Un saludo.
- Adjuntos
-
- prueba.xlsx
- Abajo de la hoja están los botones
- (20.79 KiB) Descargado 676 veces
open office 3.4.1, windows xp
Re: Ejecutar macros en hoja protegida
Hola...
Tengo una hoja llamada VENTASMENSUALESSALON la cual esta protegida, excepto el rango B6:M36
Deseo hacer una macro que con un boton llamado PROTEGER DATOS me proteja dicho rago y que con un boton llamado DESPROTEGER DATOS lo desproteja.
Nota Importante: Excel y Calc son diferentes hablando de macros.
A ver si así.
Saludos, Federico.
Tengo una hoja llamada VENTASMENSUALESSALON la cual esta protegida, excepto el rango B6:M36
Deseo hacer una macro que con un boton llamado PROTEGER DATOS me proteja dicho rago y que con un boton llamado DESPROTEGER DATOS lo desproteja.
Nota Importante: Excel y Calc son diferentes hablando de macros.
A ver si así.
Saludos, Federico.
- Adjuntos
-
- prueba.ods
- ProtegerDesproteger
- (16.32 KiB) Descargado 508 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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
-
- Mensajes: 159
- Registrado: Lun Mar 02, 2015 11:25 pm
Re: Ejecutar macros en hoja protegida
¡¡Gracias, ésto me fue re-útil!!fornelasa escribió:Hola...
Sin duda debes leer el libro de Mauricio, es un aporte invaluable a la programación de macros con oobasic.
Considero hacen falta mas detalles de tu consulta, aqui un ejemplo preliminar de proteger y desproteger hojas con macro. Asumo que la contraseña es letmein2Mira por favor el archivo ejemplo.Código: Seleccionar todo
Sub ProtegerHoja1U() Dim oHojaActiva As Object oHojaActiva = ThisComponent.getCurrentController().getActiveSheet() oHojaActiva.Protect( "letmein2" ) MsgBox "Hoja Protegida" End Sub '------------------------------------------------------------------------------------------------------ Sub DesprotegerHoja1U() On Error GoTo Mensaje Dim oHojaActiva As Object oHojaActiva = ThisComponent.getCurrentController().getActiveSheet() oHojaActiva.unProtect( "letmein2" ) MsgBox "Hoja Desprotegida" exit sub Mensaje: MsgBox "Clave Incorrecta" End Sub
Saludos, Federico.


OOo 4 - Windows Vista HP 32bit