Ayuda con codigo vba, impedir datos en celdas

Cerrado
Forero - Modificado el 23 jul 2019 a las 17:12
Hola,

Tengo una hoja excel con unas 400 celdas (combinadas de diferentes tamaños) que simulan una excavación arqueológica. Cuando en una de esas celdas pongo un "1" se ponen de un color, con un "2" de otro, y así hasta el "5".
Hay celdas que solo pueden ir con el número "1" y otras solo con el resto "2-3-4-5". La idea es conseguir que en las celdas que SOLO pueden tener un "1" de alguna forma se impida meter otro número o si se hace que se borre.
Para las celdas que solo admiten el "1" he usado este código que avisa que no se puede poner ese número y borra el contenido.

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("BH4") > "1" Then
MsgBox "Esta excavación no permite este código. Insertar 1"
Range("BH4:BH5").ClearContents
ElseIf Range("BJ4") > "1" Then
MsgBox "Esta excavación no permite este código"
Range("BJ4:BJ5").ClearContents
ElseIf Range("BL4") > "1" Then
MsgBox "Esta excavación no permite este código"
Range("BL4:BL5").ClearContents

End If
End Sub

Y para las celdas solo admiten el "2-3-4-5" este otro código.

ElseIf Range("BH6") = "1" Then
MsgBox "Esta excavación no permite este código. Inserta 2, 3, 4 o 5"
Range("BH6:bH10").ClearContents
ElseIf Range("BJ6") = "1" Then
MsgBox "Esta excavación no permite este código. Inserta 2, 3, 4 o 5"
Range("BJ6:bJ10").ClearContents

Alguna otra solución? ya que hacer esto por cada celda es una currada. Las celdas combinadas donde solo puede ir el "1" son de dos celdas A1:A2 por ejemplo y las otras son de 5 celdas A3:A7.

Gracias