Bonjour à tous !

J'ai une USF avec beaucoup de TextBox (de façon à faire un formulaire).
Lorsque l'utilisateur valide le formulaire je vais vérifier la présence de mes TextBox.Value dans une base de donnée. Dans le cas où je ne le trouve pas je souhaite faire rougir ma case TextBox pour indiquer à l'utilisateur quelle TextBox est en défaut.
Voici le code que j'ai fait pour la macro principale qui teste (je vous l'ai simplifié):
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
25
26
27
28
29
30
31
Public varbox As TextBox
 
Private Sub CommandButton1_Click()
' MISE EN FORME DES RESULTATS
Application.ScreenUpdating = False
 
' On filtre notre base de données pour n'avoir que les résultats recherchés
With Sheets("Données")
    ' Nom
    If TextBox1.Value <> "" Then
        If Not .Range("F:F").Find(TextBox1.Value, LookIn:=xlValues) Is Nothing Then
            .Range(.Range("$A$1"), .Range("$F$60000").End(xlUp).Offset(0, 11)).AutoFilter Field:=6, Criteria1:="=" & TextBox1.Value, Operator:=xlAnd
        Else
            MsgBox "Il n'existe aucun contact correspondant à votre recherche !", vbOKOnly + vbInformation, "Aucun affichage possible"
            varbox = TextBox1
            Call alerte
            Exit Sub
        End If
    End If
 
    ' Prénom
    If TextBox2.Value <> "" Then
        If Not .Range("G:G").Find(TextBox2.Value, LookIn:=xlValues) Is Nothing Then
            .Range(.Range("$A$1"), .Range("$F$60000").End(xlUp).Offset(0, 11)).AutoFilter Field:=7, Criteria1:="=" & TextBox2.Value, Operator:=xlAnd
        Else
            MsgBox "Il n'existe aucun contact correspondant à votre recherche !", vbOKOnly + vbInformation, "Aucun affichage possible"
            varbox = TextBox2
            Call alerte
            Exit Sub
        End If
    End If
Voici la macro qui alerte l'utilisateur (elle est appelée par la macro principale):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Sub alerte()
 
With varbox
    .BackColor = RGB(255, 230, 230)
    p = 0.01: s = Timer: Do While Timer < s + p: DoEvents: Loop
    .BackColor = RGB(255, 220, 220)
    p = 0.01: s = Timer: Do While Timer < s + p: DoEvents: Loop
    .BackColor = RGB(255, 210, 210)
    p = 0.01: s = Timer: Do While Timer < s + p: DoEvents: Loop
    .BackColor = RGB(255, 200, 200)
'...
End With
J'ai déclaré la variable varbox as TextBox mais j'ai une erreur "Variable objet ou variable de bloc with non définie" dans ma macro principale.
Ensuite j'ai essayé de déclarer la variable varbox as Variant mais j'ai une erreur "Objet requis" dans ma macro alerte().

Je ne vois pas comment déclarer ma variable, pouvez-vous me dire comment faire svp?

ps: toutes les lignes de code que je vous ai mis se trouvent dans mon code de ma USF

Merci !