Formato condicional para texto o Fórmula

Buenas tardes, ante todo les agradezco por su tiempo, necesito una solución para este problema que no parece tan complicado pero no se como resolverlo.
Necesito que en una planilla que se completa automáticamente por medio de fórmulas de búsqueda me resalte con algún formato cuando el usuario introduce datos pisando la fórmula, en resumen, que si se mantiene la fórmula no haga nada pero si introduce datos (un nombre por ejemplo) lo resalte de alguna forma, por ejemplo con un fondo azul.
Muchas gracias.

3 respuestas

Respuesta
1
Según veo tu intención es verificar si el usuario ha eliminado una fórmula... para eso te sugiero utilizar la funcionalidad de excel "control de cambios" de la pestaña "revisar"
Ahora si lo que deseas es evitar que eliminen una fórmula utiliza esto:
Desde el editor de vba (alt +f11) selecciona la hoja en la que deseas aplicar esta restricción, dale doble click y pega esto en la ventana de edición:
Dim antes As String
Private Sub Worksheet_Change(ByVal Target As Range)
'4c7569735f50
If InStr(1, antes, "=") > 0 Then Target = antes
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Columns.Count > 1 Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub
antes = Target.Formula
End Sub
Grabas y cierras el editor
Así si lo que existe en la celda seleccionada es una fórmula no permitirá modificar o eliminar.
No olvides cerrar la pregunta
Respuesta
1
Como estas amigo, incluyendo esta rutina en tu hoja puedes colorear todo lo que no tenga fórmula, debes cambiar el rango A1:B30, por el rango donde tienes las celdas que quieres evaluar.
Saludos
Espero te sea de ayuda.
Bacter
Private Sub Worksheet_Change(ByVal Target As Range)
Dim celda As Range
For Each celda In ActiveSheet.Range("A1:b30")
If Not celda.HasFormula Then
celda.Interior.ColorIndex = 32
Else
celda.Interior.ColorIndex = 0
End If
Next
End Sub
Respuesta
1
Lo que necesitas, lo puedes hacer con un controlador de cambios, es decir, cada vez que realices un cambio en el valor de la celda(modificques la fórmula) una macro puede actvar la celda en la que se hizo el cambio y en tu caso colorearla(ya que es lo que necesitas)
Este código debes pegarlo en el vba de la hoja de calculo, no en algún modulo:
Private Sub Worksheet_Change(ByVal Target As Range)
fila = Target.Row
columna = Target.Column
hoja = ActiveSheet.Name
Sheets(hoja).Cells(fila, columna).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub
No, olvides finalizar la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas