Página 1 de 1

[Resuelto] macro para bloquear celda con datos

Publicado: Jue Feb 14, 2019 1:48 pm
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.

Re: macro para bloquear celda con datos

Publicado: Jue Feb 14, 2019 4:42 pm
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?

Re: macro para bloquear celda con datos

Publicado: Jue Feb 14, 2019 5:26 pm
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.

Re: macro para bloquear celda con datos

Publicado: Jue Feb 14, 2019 5:54 pm
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.

Re: macro para bloquear celda con datos

Publicado: Jue Feb 14, 2019 7:13 pm
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.-

Re: macro para bloquear celda con datos

Publicado: Lun Feb 18, 2019 3:46 am
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"

Re: macro para bloquear celda con datos

Publicado: Lun Feb 18, 2019 12:34 pm
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.

Re: macro para bloquear celda con datos

Publicado: Mar Feb 19, 2019 7:13 pm
por fornelasa
¿Puedes mandar un ejemplo de tu archivo en Excel para ver como tienes el libro de trabajo?.
Saludos.

Re: macro para bloquear celda con datos

Publicado: Jue Mar 07, 2019 12:10 pm
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.-