Macro autoejecutable para rellenar un rango en una fila dependiendo del resultado de una celda

Espero se encuentren bien, quisiera ver si me pueden apoyar con este tema; estoy trabajando con un archivo de excel donde en las columnas A, B, C, D y E introduzco texto (metas y Objetivos) en las columnas siguientes de la "F" a la "O" introduzco porcentajes de avance y en la columna "P" he introducido la siguiente formula: SI(SUMA(F3:O3)=100,"Felicidades Objetivo Concluido", SUMA(F3:O3)) en donde si sumo todos los porcentajes y el resultado es 100% coloque el texto "Felicidades Objetivo Concluido" y si no que coloque el resultado de la sumatoria.

La macro que he tratado de buscar es que si el resultado de la celda en la columna "P" muestra el texto "Felicidades Objetivo Concluido" automáticamente se rellene de un color desde la columna "D" hasta la "P" de esa fila, adapte una macro pero solo se ejecuta el cambio de color si introduzco manualmente el texto en la celda "P" .

Esta es la macro que adapte

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

If Not Intersect(Cells(Target.Row, Target.Column), Hoja1.Columns("P:P")) Is Nothing Then

If Target.Value = "Felicidades Objetivo Concluido" Then

Hoja1.Range(Cells(Target.Row, 4), Cells(Target.Row, 16)).Select

With Selection.Interior

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

.ThemeColor = xlThemeColorLight1

.TintAndShade = 0

.PatternTintAndShade = 0

End With

With Selection.Font

.Color = -16711681

.TintAndShade = 0

End With

End If

Else

End If

End Sub

Espero puedan apoyarme ya que no se mucho de macros.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.