[RESOLU]ERREUR DANS dATEdIFF and simplifier le code

chaelie2015

XLDnaute Accro
Bonjour Forum
puis je avoir votre correction concernant ce code
Code:
Sub retard()
On Error GoTo Fin 'gère l'erreur du textbox pas encore rempli
If TextBox14 <> "" And TextBox15 <> "" Then _
TextBox39 = DateDiff("d", IsDate(TextBox15), IsDate(TextBox14), 2, 2) & " Jour(s)" Else: TextBox39 = ""
Fin:
End Sub
sachant que TextBox15 date arrivée et TextBox14 date départ
mon souci c'est que dans le TextBox39 il affiche que 0 jour(s)
MERCI PAR AVANCE
 
Dernière édition:

chaelie2015

XLDnaute Accro
Re : [RESOLU]ERREUR DANS dATEdIFF

Re
toujours dans le même principe je souhaite simplifier ce
Code:
Sub retard()
On Error GoTo Fin 'gère l'erreur du textbox par encore rempli
If TextBox14 <> "" And TextBox15 <> "" And TextBox15 > TextBox14 Then
TextBox39 = "Vous avez pris un retard de " & DateDiff("d", CDate(TextBox14), CDate(TextBox15), 2, 2) & " jour(s)"
Else
     If TextBox14 <> "" And TextBox15 <> "" And TextBox15 < TextBox14 Then
     TextBox39 = "Vous êtes en avance de " & DateDiff("d", CDate(TextBox15), CDate(TextBox14), 2, 2) & " jour(s)"
     Else
         If TextBox14 <> "" And TextBox15 <> "" And TextBox15 = TextBox14 Then
         TextBox39 = "Vous êtes dans les delais "
         Else: TextBox39 = ""
         End If
     End If
End If

Fin:
End Sub
MERCI PAR AVANCE
 

Dranreb

XLDnaute Barbatruc
Re : ERREUR DANS dATEdIFF and simplifier le code

Bonsoir.
Réfléchissez. Si on ne peux pas effectuer de calcul sur des textes représentant des dates sans les convertir à l'aide de CDate, on ne peut évidemment pas non plus les comparer sans ce CDatei !
Enfin moi je ferais sans doute quelque chose comme ça :
VB:
Sub retard()
Dim DifJ As Long
On Error GoTo Fin 'gère l'erreur du textbox par encore rempli
DifJ = CDate(TextBox14) - CDate(TextBox15)
Select Case DifJ
   Case Is < -1: Label39 = "Vous avez pris un retard de " & -DifJ & " jours."
   Case Is < 0:  Label39 = "Vous avez pris un retard de 1 jour."
   Case Is < 1:  Label39 = "Vous êtes dans les délais."
   Case Is < 2:  Label39 = "Vous êtes en avance de 1 jour."
   Case Else:    Label39 = "Vous êtes en avance de " & DifJ & " jours."
      End Select
Fin:
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 810
dernier inscrit
mohammedaminelahbali