Macro para desbloquear rangos de celdas en excel si coinciden con la fecha actual

Para tener el saldo de caja diario, tengo una hoja en excel en la que registro diariamente los movimientos económicos del día (ingresos y egresos) con el siguiente formato: a la izquierda (columna A desde la fila 2 hacia abajo) los conceptos de los movimientos y en la fila 1 a partir de la columna B hacia la derecha cada celda tiene una fecha, necesito que las celdas ejemplo ( B2 : B20) donde se ingresa la info del día actual estén desbloquedas si la fecha de B1 coincide con la del día actual y así sucesivamente pero que las demás celdas de ingreso que pertenecen a otros días esten bloqueadas para evitar ingresos erróneos.

1 Respuesta

Respuesta
1

H o l a:

Para bloquear las celdas tienen que ocurrir 2 cosas, primero, que la hoja esté protegida, y segundo, que se ejecute un evento en tu hoja o en tu libro, los eventos por ejemplo, pueden ser: que se seleccione una celda, o que se modifique una celda, o que se abra el archivo o que se cierre el archivo, en fin, pueden ser varios, en este caso, se me ocurre, que al seleccionar la celda A1 de tu hoja donde llevas la caja, se active la macro y entonces bloqueé las celdas y solamente deje las celdas desbloqueadas de la columna que corresponda a la fecha de hoy, previamente deberás poner todas las fechas del mes.


Pon la siguiente macro en los eventos de tu hoja.

Cambia en la macro "abc" por el password que llevará la hoja protegida.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    pwd = "abc"
    If Target.Count > 1 Then Exit Sub
    If Target.Address(False, False) = "A1" Then
        ActiveSheet.Unprotect pwd
        Cells.Locked = True
        Set b = Rows(1).Find(Date, lookat:=xlWhole)
        If Not b Is Nothing Then
            Columns(1).Locked = False
            Columns(b.Column).Locked = False
            Rows("1:1").Locked = True
        Else
            MsgBox "No existe la fecha de hoy en la fila 1", vbExclamation, "ERROR"
        End If
        ActiveSheet.Protect pwd
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Ahora selecciona la celda A1, listo, la macro se ejecutará y bloqueará las celdas.


:)
S aludos. D a n t e A m o r. Recuerda valorar la respuesta. G r a c i a s
;) 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas