Columna con fórmula

Hola un nuevo reto, existe la posibilidad de que en una hoja por ejemplo, con tres columnas a, b, c y varias filas...
En la columna c tengo fórmulas, la cuestión es la siguiente como no puedo proteger la hoja y por tanto esa columna, existe la posibilidad de que si alguien borra una fórmula de esa columna salga un mesaje en algún lugar de la hoja, advirtiendo que el valor de determinadas celdas han perdido la fórmula.
¿Cómo lo ves,?
Agradecido de antemano
JMC

1 Respuesta

Respuesta
1
Con el siguiente código, la fórmula que este en cualquier fila de la columna C se mantendrá, no permitirá que el usuario la cambie o borre, el código lo tienes que poner dentro de la hoja donde tengas las fórmulas...
Option Explicit
Dim strFormula As String
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Column = 3 Then
Application.EnableEvents = False
Target.FormulaLocal = strFormula
Application.EnableEvents = True
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Column = 3 Then
strFormula = Target.FormulaLocal
End If
End If
End Sub
Como dije, checa cualquier fial de la columna C, si quieres que solo cheque por ejemplo de la fila 2 a la 50, bueno esa es tu tarea, como pista, usa la propiedad Row
La solución es factible pero es el problema es que SI necesito modificar esa columna C es decir en toda la columna hay una fórmula que realiza un calculo pero en casos especiales quiero que por ejemplo la C3 en vez de el valor que me da la fórmula pueda poner yo un valor, pero claro ahí viene el problema, que me quede reflejado de alguna forma que La C3 se ha borrado la fórmula y el valor que tiene esta puesto manualmente, no se si me entiendes, ¿lo qué quiero conocer es que celda dentro de esa columna son calculadas y cuales han sido modificadas a mano?
Atentamente JMC
¡Ojo! Si es mucho problema decir que celdas son modificadas por lo menos que pueda decir que en esa columna existen al menos una celda modificada a mano
Si, si entiendo, y no es mucho problema, mi punto de vista es que con poner el cursor en la celda, en la barra de fórmulas observas si es una fórmula o una constante, no veo el caso de mostrarlo de otra manera, pero también creo que cada quien tiene sus necesidades, checa si el siguiente código te sirve, te muestra información en al barra de estado y te muestra un mensaje cuando borrar una celda...
Option Explicit
Dim strFormula As String
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Res As String, strValor As String
If Target.Count = 1 Then
If Target.Column = 3 Then
strValor = Trim(Target.Value)
If strValor = "" Then
Res = MsgBox("Realmente deseas borrar esta celda?", vbYesNo + vbQuestion, "Borrando")
If Res = vbNo Then
Application.EnableEvents = False
Target.FormulaLocal = strFormula
Application.EnableEvents = True
End If
End If
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Column = 3 Then
strFormula = Target.FormulaLocal
If Left(strFormula, 1) = "=" Then
Application.StatusBar = "Esta celda tiene FORMULA"
ElseIf Trim(strFormula) = "" Then
Application.StatusBar = "Esta celda esta VACIA"
Else
Application.StatusBar = "Esta celda tiene una CONSTANTE"
End If
Else
Application.StatusBar = False
End If
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas