Well, not sure I understand your ElseIf statements (the cbThreat is one color if it is < 1 and another color if it is < 1, which is it?). If a listbox item is selected the .ListIndex will return 0 to .ListCount -1. If nothing is selected it returns -1.

I would use the textbox change event and the listbox change or click event to restore the normal colors and use the command but to flag the invalid fields.