Te anexo la macro para contar los de en medio.
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
If Not Intersect(Target, Range("A:A")) Is Nothing Then
If Target.Count = 1 Then
Set b = Range("C1:U1").Find(Target, LookAt:=xlWhole)
If Not b Is Nothing Then
u = Cells(Rows.Count, b.Column).End(xlUp).Row + 1
Cells(u, b.Column) = "x"
cuenta3 u, b.Column
cuenta2 u, b.Column
End If
End If
End If
End Sub
Sub cuenta3(f, c)
'Por.Dante Amor
If Cells(f, c - 2) = "x" And Cells(f, c - 1) = "x" Then
existe = True
a = -3
p = 1
ElseIf Cells(f, c - 1) = "x" And Cells(f, c + 1) = "x" Then
existe = True
a = -2
p = 2
ElseIf Cells(f, c + 1) = "x" And Cells(f, c + 2) = "x" Then
existe = True
a = -1
p = 3
End If
If existe Then
cad = ""
If Cells(f, c + a) = "" Then
cad = Cells(1, c + a)
End If
If Cells(f, c + p) = "" And Cells(1, c + p) <> "" Then
If cad <> "" Then
cad = cad & " y " & Cells(1, c + p)
Else
cad = Cells(1, c + p)
End If
End If
If cad <> "" Then
MsgBox "Atención sobre " & cad
End If
End If
End Sub
Sub cuenta2(f, c)
'Por.Dante Amor
On Error Resume Next
If Cells(f, c + 3) = "x" And Cells(f, c + 1) = "x" And Cells(f, c + 2) = "" Then
existe = True
m = 2
ElseIf Cells(f, c + 1) = "x" And Cells(f, c - 2) = "x" And Cells(f, c - 1) = "" Then
existe = True
m = -1
ElseIf Cells(f, c - 3) = "x" And Cells(f, c - 1) = "x" And Cells(f, c - 2) = "" Then
existe = True
m = -2
ElseIf Cells(f, c - 1) = "x" And Cells(f, c + 2) = "x" And Cells(f, c + 1) = "" Then
existe = True
m = 1
ElseIf Cells(f, c + 3) = "x" And Cells(f, c + 2) = "x" And Cells(f, c + 1) = "" Then
existe = True
m = 1
ElseIf Cells(f, c - 3) = "x" And Cells(f, c - 2) = "x" And Cells(f, c - 1) = "" Then
existe = True
m = -1
End If
werr = Err.Number
If Err.Number = 0 Then
If existe Then
MsgBox "Atención sobre " & Cells(1, c + m)
End If
End If
Err.Number = 0
End Sub
Saludos.Dante Amor
No olvides valorar la respuesta.