Parce que la valeur d'une TextBox est par définition de type String, et qu'il est nécessaire de la convertir pour la comparer au contenu d'une cellule.
Quand tu mets 2, VBA opère directement la comparaison de valeur (de même que si tu affectes le contenu de la TextBox à une cellule, tu auras un nombre parce qu'Excel convertira automatiquement), mais demandant à VBA de comparer avec le contenu d'une cellule, VBA va s'intéresser au type. Il y a des choses transparentes dans certains cas et pas dans d'autres...
Tu en verras bien d'autres à l'usage...