Hi Trevor. Place this macro in the worksheet code module (not a regular module). The text in column B will automatically be converted to uppercase as you enter the data in each cell in column b and then exit the cell. You don't have to run any macro. This will be done automatically. Does this work for you?
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Dim bottomB As Long
    bottomB = Range("B" & Rows.count).End(xlUp).Row
    If Not Application.Intersect(Target, Range("B1:B" & bottomB)) Is Nothing Then
        Target(1).value = UCase(Target(1).value)
    End If
    Application.EnableEvents = True
End Sub