Necesito ayuda para generar una macro que actúe al registrarse la fecha en una celda, y en función del valor de esta celda, otro rango de celdas se bloquee.
Si me dices los rangos te paso el código si lo prefieres mandame tu archivo d2enrique arroba .com
Hola Enrique. Gracias por responder tan rápido. Te cuento más detalles. Si A1=1, quiero bloquear Range("J116, J120, J124, J127, J128, J132:J144"). Select Range("J132").Activate Saludos, Sebas
Lo que pides es esto si el dato que introduces en A1 sale de una fórmula Private Sub Worksheet_Calculate() If Range("A1").Value = 1 Then Cells.Select ActiveSheet.Unprotect Selection.Locked = False Selection.FormulaHidden = False Range("J116,J120,J124,J127,J128,J132:J144").Select Selection.Locked = True Selection.FormulaHidden = False Range("J132").Activate ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If End Sub Si el dato lo introduces directamente en A1 seria este otro codigo Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" And Target.Value = 1 Then Cells.Select ActiveSheet.Unprotect Selection.Locked = False Selection.FormulaHidden = False Range("J116,J120,J124,J127,J128,J132:J144").Select Selection.Locked = True Selection.FormulaHidden = False Range("J132").Activate ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If End Sub Este código lo has de introducir en el código de la hoja si no sabes como dímelo y te lo explico
Estimado Experto: Otra consulta. Como hacer para que solo ejecute el condicional únicamente cuando ocurre un cambio en el valor de A1. Ahora, cada vez que hago una modificación en los valores de cualquier celda, el programa ejecuta el condicional y esto hace muy lenta el trabajo con la hoja de cálculo. Desde ya muchas gracias. Saludos, Sebas
Estoy en el trabajo cuando llegue ha casa verifico lo que me dices creí que solo se ejecutaba en A1 Por favor dime que código usas el change o el calculate
Solo copie y pegue el programa que me pasaste. Creo que es calculate. Saludos,
Si la celda A1 es una fórmula no hay manera de que al existir en otras celdas más fórmulas no se ejecute al cambiar otras fórmulas Si es ese el caso se puede hacer pero dime las celdas que modificas para que esa fórmula se calcule entonces utilizaríamos el rango de esas celdas para ejecutar el código solo con que cambies en este código $A$1 por la celda que cambias ya te debe funcionar Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" And Target.Value = 1 Then Cells.Select ActiveSheet.Unprotect Selection.Locked = False Selection.FormulaHidden = False Range("J116,J120,J124,J127,J128,J132:J144").Select Selection.Locked = True Selection.FormulaHidden = False Range("J132").Activate ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If End Sub Pruébalo y ya me cuentas
Estimado Experto: No funcionó con este cambio de código. Voy a dejar el código anterior, pero quería que me ayudes a ver como hago para que este rango de celdas no quede bloqueado cuando A1 es diferente de 1. Gracias Saludos, Sebas
Pásame tu correo y te mado un ejemplo si lo prefieres mandame tu archivo y lo adapto d2enrique arroba hotmail.com
Hola: Te envié un e-mail para que me puedas dar un ejemplo. Gracias
Disculpa pero no recibí ningún e-mail
Volví a enviarte el e-mail. No se que pudo haber pasado con el anterior. Gracias por la ayuda. Saludos,
Te envíe el archivo con las explicaciones ya me cuentas si te vale