d'où vient l'erreur

akmer

XLDnaute Junior
Bonjour,
J'ai ce code derrier le bouton OK d'une userform qui contient 2 textboxdate, et je veux que en cliquant sur ce bouton OK, que le logiciel vérifie d'abord que la date qui apparait dans la 1éer textbodate soit inférieur a la 2ème texboxdate, si ce n'est pas le cas un message d'erreur apparait et quand on clique sur le bouton ok de ce message d'erreur on revienne à la userform pour modifier les dates.
Voici les code que j'ai tapé:

Private Sub CommandButtonOK_Click()
If TextBoxDate1 = "" Or TextBoxDate2 = "" Then
MsgBox "Saisie incomplète !", vbExclamation

Else
If TextBoxDate1 > TextBoxDate2 Then
MsgBox " La date de début est " & vbCr _
& "supérieur à la date de fin !", vbExclamation
Exit Sub

Else
UserForm1.Hide
CommandButtonOK.MousePointer = 11
UserForm10.Show
Application.ScreenUpdating = False

UserForm1.Hide
End If
End If

End Sub

Le problème c'est que si par exemple je tape dans la texboxdate1: 25-05-2008 et dans la texboxdate2:02-06-2008: le message d'erreur apparait alors qu'il ne devrait pas apparaitre étant donné que 25-05-2008 est bien inférieur à 2-06-2008.
Quelqu'un pourrait trouver le problème ou em donner une autre solution pour résoudre ce problème??
Merci 'avance à tous ce qui m'aideront
 

XL_Luc

XLDnaute Occasionnel
Re : d'où vient l'erreur

Le probleme vient du fait que tu compare des chaines de caracteres et non des dates.

Essaye en ajoutant datevalue ça devrait marcher

If datevalue(TextBoxDate1) > datevalue(TextBoxDate2) Then
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : d'où vient l'erreur

Bonjour

Il faut toujours se rappeler que dans tes textbox il s'agit de texte

Donc il faut convertir

If CDate(TextBoxDate1) > CDate(TextBoxDate2) Then

C'est également valable lorsque tu veux recopier dans une cellule

Exemple Range("A1")=CDate(Textbox1)
 

Discussions similaires

Statistiques des forums

Discussions
314 085
Messages
2 105 647
Membres
109 410
dernier inscrit
fwbox