Bonjour,
Vérification faite (sur fichier test), cela se produit lorsque tu modifies le contenu de la TextBox que tu indiques, et que tu ne valides pas la modification, mais ferme le Userform ! Soit sur une manipulation inachevée, donc dans une situation pas vraiment licite !
Ce qui me surprend par contre c'est que le phénomène ne se produise pas pour les autres, je suis donc un peu dubitatif sur l'explication : Val ne renvoie pas d'erreur, la fonction renvoie un nombre, ou 0 si elle n'en trouve pas... il ne devrait donc pas y avoir de raison à une incompatibilité de type, surtout qu'elle ne se produit pas dans les autres cas... Il y a donc un lien avec la position de la TextBox mais là je ne vois pas où réside l'explication.
A noter la configuration précise des contrôles sur le userform test, que tu devrais avoir aussi sur ton fichier (en principe) :
5 TextBox : les 2 premiers sont verrouillés (Locked=True) et exclus de l'ordre de tabulation (TabStop=False), les 3 autres sont normaux et placés dans leur ordre logique en ce qui concerne la tabulation, mais c'est le bouton de validation qui est placé en tête de l'ordre de validation, c'est à dire que lors de l'ouverture, le focus est sur le bouton (soit si à l'ouverture tu appuies sur Entrée, cela fermera le Userform : validation aux valeurs existantes et fermeture), si tu tabules, cela fait passer le focus à la 3e TextBox, puis la 4e, puis la 5e, puis retour sur le bouton (avec sélection du contenu des TextBox qui te permet de frapper directement une autre valeur).
Ton Userform étant dépourvu de bouton de fermeture, la fermeture par la croix ne déplace pas le focus, c'est pour cela qu'une erreur se produit (mais ça n'explique pas pourquoi elle ne se produit que sur une seule TextBox).
Quoi qu'il en soit, un déplacement du focus à la fermeture, devrait régler le problème :
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
cbValid.SetFocus
End Sub
Mais tu pourrais introduire un bouton de fermeture, qui éliminera aussi cette erreur (à condition de s'en servir ! )
Cordialement.