[Resuelto] macro para bloquear celda con datos

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
pibe27
Mensajes: 5
Registrado: Jue Feb 14, 2019 1:28 pm

[Resuelto] macro para bloquear celda con datos

Mensaje por pibe27 »

Saludos. Uso normalmente Excel en mi trabajo y he creado una macro para que una vez introducido cualquier dato en una celda automaticamente despues de salir de ella se quede bloqueada y no se pueda sobreescribir. Por cambios en la empresa estamos utilizando OpenOffice Calc y no consigo convertir el codigo. Soy un auténtico novato en OpenOffice y este tema me está rompiendo la cabeza y por muchas vueltas que le he dado no lo consigo. Pediría si alguien con experiencia la pudiera convertir le estaría muy agradecido.
El código es el siguiente:

Código: Seleccionar todo

Private Sub Worksheet_Change(ByVal Target As Range)
'Proteger celdas
'Por.Dam
If Not Intersect(Target, Range("A1:V70")) Is Nothing Then
Application.ScreenUpdating = False
Set Rango = Range("A1:V70")
ActiveSheet.Unprotect
For Each celda In Rango.Cells
    celda.Select
    If celda = "" Then
        Selection.Locked = False
        Selection.FormulaHidden = False
    Else
        Selection.Locked = True
        Selection.FormulaHidden = False
    End If
Next
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.ScreenUpdating = False
End If
End Sub
De nuevo reitero mi agradecimiento si alguien me pudiera aclarar algo o hacer que funcione en Open Office. Gracias.
Última edición por pibe27 el Jue Mar 07, 2019 12:28 pm, editado 1 vez en total.
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: macro para bloquear celda con datos

Mensaje por mauricio »

El código es sencillo, pero no parece optimizado, es decir, si solo modificas una celda cada vez en el rango A1:V70, no veo el caso de verificar de nuevo cada vez las 1539 celdas restantes.

¿Solo deseas bloquear la ultima celda editada en el rango establecido?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
pibe27
Mensajes: 5
Registrado: Jue Feb 14, 2019 1:28 pm

Re: macro para bloquear celda con datos

Mensaje por pibe27 »

Hola Mauricio, ante todo muchas gracias por tu rápida respuesta. Si, efectivamente solo es necesario bloquear las celdas con datos en el rango especificado, esto es, de la A1 a la V70. De nuevo, muchas gracias.
Version de OpenOffice: 4.1.5 y de Sistema Operativo: Windows 10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: macro para bloquear celda con datos

Mensaje por mauricio »

En programación, uno tiene que ser mucho, reitero e mucho, muy preciso, tu sabes exactamente que necesitas, pero es necesario lo comuniques, mira de nuevo mi pregunta, y veras que no la has respondido.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
pibe27
Mensajes: 5
Registrado: Jue Feb 14, 2019 1:28 pm

Re: macro para bloquear celda con datos

Mensaje por pibe27 »

Hola Mauricio. Disculpa si no he explicado claramente lo que realiza la macro en Excel. Lo que consigo es que dentro del rango A1:V70, en el que hay una serie de nombres en el encabezamiento de cada columna hasta la de la letra "V" y números de orden en las filas hasta la fila 70, cuando introduzco un dato en cualquier celda de ese rango, al salir de dicha celda automáticamente se queda bloqueada para que no se pueda sobreescribir sobre ella, ni sobre ninguna en la que anteriormente haya introducido cualquier dato, permaneciendo activas todas las celdas que quedan libres. En cuanto a lo de verificar las celdas restantes dentro del rango si es necesario para comprobar que se encuentra libre y poder introducir un dato en cualquiera de ellas, pienso yo. Todo ello es muy importante ya que dicha aplicación es compartida en otros turnos de trabajo y es una medida de seguridad para que otros compañeros, por error o no, puedan alterar dichos datos. Por lo tanto, básicamente, es necesdario que, dentro de ese rango, una vez introducido un dato en cualquier celda, posteriormente no se pueda modificar ninguna de ellas. Muchas gracias de nuevo y espero haberme explicado ahora con más claridad. Un saludo cordial.-
Última edición por pibe27 el Jue Feb 14, 2019 8:38 pm, editado 1 vez en total.
Version de OpenOffice: 4.1.5 y de Sistema Operativo: 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 para bloquear celda con datos

Mensaje por fornelasa »

Se entiende que dentro del rango A1:V70 todas las celdas con datos deben estar protegidas y las celdas vacías deben estar desprotegidas. Al introducir un dato en una celda vacía automáticamente dicha celda debe protegerse.
Si es asì, coincido, tu macro en Excel es terriblemente ineficiente.
Solo para no dejar, mira tu macro un poco modificada y al introducir un dato espera a que aparezca el mensaje "listo"
Adjuntos
Protege.ods
Des-protege
(9.86 KiB) Descargado 495 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!
pibe27
Mensajes: 5
Registrado: Jue Feb 14, 2019 1:28 pm

Re: macro para bloquear celda con datos

Mensaje por pibe27 »

Muchísimas gracias por tu rápida respuesta. La macro es exacta a la que tenía en Excel en su modo de ejecución. Lo único que en Excel a la hora de desproteger completamente la hoja le introducía un password y en este caso al ir a Herramientas--> Proteger documento--> Hoja..., con solo desmarcar se queda la hoja sin protección. ¿Sabes como sería esta misma macro para que se le pudiera añadir la password que uno quisiera?. Por otro lado al pasar con el tabulador de una celda a la otra siguiente contigua en la misma fila, tiene un ligero retardo, no es tan rápida como en Excel. Muchas gracias de nuevo y un saludo cordial.
Version de OpenOffice: 4.1.5 y de Sistema Operativo: 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 para bloquear celda con datos

Mensaje por fornelasa »

¿Puedes mandar un ejemplo de tu archivo en Excel para ver como tienes el libro de trabajo?.
Saludos.
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!
pibe27
Mensajes: 5
Registrado: Jue Feb 14, 2019 1:28 pm

Re: macro para bloquear celda con datos

Mensaje por pibe27 »

Buenos días. Ante todo disculpas por la tardanza en responder debido a la falta de tiempo por tanto trabajo. Decirte que finalmente conseguí ponerle una contraseña a la macro. Dando el tema por concluido les reitero las gracias por tanta ayuda y dedicación. Un saludo muy cordial.-
Version de OpenOffice: 4.1.5 y de Sistema Operativo: Windows 10
Responder