Bonjour le fofo !

Je souhaite faire un formulaire pour entrer un numéro de téléphone.
Dans le cas où ma textbox contient 10 caractères je créé des espaces entre les différents numéros.

Si la textbox ne contient ni 10 ni 14 ni 0 caractères je souhaite la faire clignoter pour indiquer à l'utilisateur qu'il y a une erreur. Ce clignotement je veux qu'il se déclenche lorsque l'on quitte la textbox.

Voici le code que j'ai fait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub TextBox3_exit(ByVal Cancel As MSForms.ReturnBoolean)
 
Dim s, p As Variant
 
' Création des espaces entre nombres du numéro de téléphone
If Len(TextBox3.Value) = 10 Then
    TextBox3.Value = Left(TextBox3.Text, 2) & " " & Mid(TextBox3.Text, 3, 2) & " " & Mid(TextBox3.Text, 5, 2) & " " & _
                    Mid(TextBox3.Text, 7, 2) & " " & Mid(TextBox3.Text, 9, 2)
End If
 
' Clignotement de la textbox
If Len(TextBox3.Value) <> 14 And Len(TextBox3.Value) <> 10 And Len(TextBox3.Value) <> 0 Then
    a = 0
    While a < 3
        a = a + 1
        TextBox3.Visible = True
        p = 0.1: s = Timer: Do While Timer < s + p: DoEvents: Loop
        TextBox3.Visible = False
        p = 0.1: s = Timer: Do While Timer < s + p: DoEvents: Loop
    Wend
    TextBox3.Visible = True
End If
 
End Sub
Le problème que j'ai c'est, qu'arrivé au "End Sub", le programme refait un tour de boucle...et clignote une fois de trop, ce que je ne souhaite pas. Auriez-vous une idée pour éviter ce tour de boucle supplémentaire?