Bonjour,

Voilà, des utilisateurs doivent saisir des dates dans des textbox.
Je les ai formatés pour 10 caract avec "/" et avec tabulation automatique dès 10 caract saisis. A la fin ils valident par bouton et il y a un contrôle avant récup des dates dans une feuille excel. Le problème est que certains textbox peuvent ne pas être saisis (donc rester vides) et lorsque que l'on clique sur valider, tout les textbox sont en valeur incorrecte.

Ce que je voudrai arriver à faire c'est que quand on valide la saisie, le contrôle met en erreur les textbox où la date est erronée (ex: 25/14/2007) mais ignore les texbox vides.

Voici le code de mon bouton Valid_CP :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Private Sub Valid_CP_Click()
If Not IsDate(TextBox1.Value) Then
MsgBox "Format incorrect Zone 1"
TextBox1 = ""
 
End If
If Not IsDate(TextBox2.Value) Then
MsgBox "Format incorrect Zone 2"
TextBox2 = ""
 
End If
If Not IsDate(TextBox3.Value) Then
MsgBox "Format incorrect Zone 3"
TextBox3 = ""
 
End If
If Not IsDate(TextBox4.Value) Then
MsgBox "Format incorrect Zone 4"
TextBox4 = ""
 
End If
If Not IsDate(TextBox5.Value) Then
MsgBox "Format incorrect Zone 5"
TextBox5 = ""
 
End If
If Not IsDate(TextBox6.Value) Then
MsgBox "Format incorrect Zone 6"
TextBox6 = ""
 
End If
If Not IsDate(TextBox7.Value) Then
MsgBox "Format incorrect Zone 7"
TextBox7 = ""
 
End If
If Not IsDate(TextBox8.Value) Then
MsgBox "Format incorrect Zone 8"
TextBox8 = ""
Exit Sub
End If
[d12] = UserForm2.TextBox1
[d13] = UserForm2.TextBox2
[d14] = UserForm2.TextBox3
[d15] = UserForm2.TextBox4
[f12] = UserForm2.TextBox5
[f13] = UserForm2.TextBox6
[f14] = UserForm2.TextBox7
[f15] = UserForm2.TextBox8
 
 
 
 
End Sub
Je met ci-dessous le code d'un des textbox (au cas où) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Private Sub TextBox1_Change()
Dim valeur As Byte
TextBox1.MaxLength = 10
valeur = Len(TextBox1)
If valeur = 2 Or valeur = 5 Then TextBox1 = TextBox1 & "/"
 
End Sub
Merci d'avance.