Your tests are not clear whether all the values must contain numbers or any one of them contains numbers so in those cases I assumed that if in any cell of the range contained a number then the message would be shown...

The code in the Worksheet_Change sheet would go something along these lines.... this should get your started.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cCell As Range
Dim flag As Boolean

flag = False

'Your first Test
If Range("C5").Value = "" Then
   'Test to see if B5:B6 contains numbers
   For Each cCell In Range("B5", "B6") 'dont know your logic does both need to contain numbers or either one?
      If cCell.Value > 0 Then
         flag = True
      End If
   Next
   If flag Then
     flag = vMsg("You must select a code for your time.")
   End If
End If

'Your Second test
If Range("C7").Value = "" Then
   'Test to see if B7:B8 contains numbers
   For Each cCell In Range("B7", "B8") 'dont know your logic does both need to contain numbers or either one?
      If cCell.Value > 0 Then
         flag = True
      End If
    Next
   If flag Then
      flag = vMsg("You must select a code for your time.")
   End If
End If

'... and so on with your tests.....


End Sub

Function vMsg(msg As String) As Boolean
   'Display the message
   MsgBox msg
   vMsg = False
End Function