A ver si yo interpreto lo que solicitas. No olviden que solo podemos guiarnos por vuestros dichos o notas... no estamos viendo el libro ni sus hojas... y no sabemos cómo Uds están registrando la información.
'...Cuando se llena la tabla y en alguna de ellas tiene la palabra si,...' esto lo puedo interpretar que será al momento de ingresar datos en la tabla y para esto es la macro que te envío. En la imagen se observa que el código se coloca en el objeto HOJA donde estés trabajando.
Y este es el código para un rango de datos como en la muestra. Tendrás que ajustarla a tus referencias y establecer cuál es la fila de encabezados que en mi ejemplo es 1.
Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'rango de la tabla
Set rgo = Range("A1").CurrentRegion
On Error Resume Next
'controla si se ingresó el texto SI (en mayúsc o minúsc) en alguna celda de la tabla
If Not Intersect(Target, rgo) Is Nothing Then
If UCase(Target.Value) = "SI" Then
MsgBox "Se registró 'SI' en la columna " & Target.Column & " con título " & Cells(1, Target.Column)
'MsgBox "Se registró 'SI' en la celda " & Cells(Target.Row, Target.Column).Address
End If
End If
End Sub
Si, en cambio, se trata de una Tabla, la macro difiere un poco. El siguiente código trabaja con un rango como el de la imagen:
Y así podríamos seguir desarrollando macros más o menos parecidas a éstas que trabajan con el evento Change de la hoja. O con otros eventos ... quizás solo copias y pegas 1 renglón... y habrá alguna celda con el valor SI... y esto ya requerirá de alguna macro diferente.
Por eso es tan importante que dejen las consultas bien claras de cómo van a realizar los procesos.
Sdos y no olvides valorar esta respuesta si te ha servido de ejemplo. O deja mayores aclaraciones para ajustarla.