Buenas, puedes hacer esto en el evento Change de la caja de texto.
Private Sub Text1_Change()
Dim Valor As Double
Dim ParteEntera As Integer
Dim ParteDecimal As Double
If Not IsNumeric(Me.Text1.Text) Then
Exit Sub
End If
Valor = CDbl(Me.Text1.Text)
ParteEntera = Fix(Valor)
ParteDecimal = Valor - ParteEntera
If ParteDecimal <> 0.5 And ParteDecimal <> 0 Then
MsgBox "Error de formato"
End If
End Sub
Esot lo que hace es dejar introducir valores controlando la parte entera y la parte decimal del valor insertado.
Ojo, ten en cuenta tu configuración regional ya que el separador de decimales variará según esta. O punto o Coma. Esto te afectará en la línea "Valor = CDbl(Me.Text1.Text)"
Un saludo