Agregar una fórmula a macro que bloquea celdas según valor
Tengo la siguiente macro que me bloquea o desbloquea unas celdas, dependiendo si el valor de la columna E es 0 o mayor a cero:
Private Sub Worksheet_Change(ByVal Target As Range) Dim matri As Range Set matri = Application.Intersect(Target, Range("E5:E300")) If Not matri Is Nothing Then If matri = 0 Then ActiveSheet.Unprotect matri.Offset(0, 1).Locked = False matri.Offset(0, 2).Locked = False ActiveSheet.Protect ElseIf matri > 0 Then ActiveSheet.Unprotect matri.Offset(0, 1).Locked = True matri.Offset(0, 2).Locked = True ActiveSheet.Protect End If End If End Sub
Ahora, cuando el valor es mayor a cero, necesitaría que ademas de proteger la celda, antes escriba una formula de buscarv:
Yo intente algo así, pero no funciona:
ElseIf matri > 0 Then ActiveSheet.Unprotect matri.Offset(0, 1).value = "=SI([@[Nº Matricula]]="";"";SI.ERROR(BUSCARV([@[Nº Matricula]];matriculados;3;0);""))" matri.Offset(0, 2).value = "=SI([@[Nº Matricula]]="";"";SI.ERROR(BUSCARV([@[Nº Matricula]];matriculados;6;0);""))" matri.Offset(0, 1).Locked = True matri.Offset(0, 2).Locked = True ActiveSheet.Protect End If End If End Sub
Me imagino que debe ser sencillo, pero no tengo idea de como se puede hacer.
1 Respuesta
Respuesta de Abraham Valencia
1