Date for vba excel

Résolu
Bonjour,

je ne parviens pas à vérifier si les données entrées dans la textbox3 sont une date au bon format ni à vérifier si la date entrée est égale ou différente de celle du jour

pouvez vous m'aider ?

merci

ci-joint mon fichier

https://www.cjoint.com/c/FBsllLgxxuv

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour f894009

    merci pour ta solution et j'ai vu où était mon souci (entre "date" et "now").

    je venais d'en trouver une autre qui fonctionne également
    quelle différence y a t il entre beforeUpdate et exit ?

    Private Sub TextBox3_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox3.Value = Format(TextBox3.Value, "dd/mm/yyyy")
    If Not IsDate(Me.TextBox3) Then
    MsgBox "Erreur de saisie", vbExclamation + vbDefaultButton2, "Date de la Pièce"
    Cancel = True
    ElseIf CDate(TextBox3.Value) > Date Then
    MsgBox "Date invalide", vbExclamation + vbDefaultButton2, "Date de la Pièce"
    TextBox3 = ""
    Cancel = True
    End If

    End Sub
    1. Re,

      ces evenements s'exectutent dans cet ordre et la ou il y a Cancel posibilite de faire des test et ne pas sortir de la textbox

      Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

      Private Sub TextBox2_AfterUpdate()

      Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  2. Bonjour,

    Date: jj/mm/aaaa
    Now: jj/mm/aa hh:mm:ss

    Private Sub TextBox3_exit(ByVal cancel As MSForms.ReturnBoolean)
        Dim datepiece
        
        datepiece = CDate(TextBox3.Value)
         If Not IsDate(datepiece) Then
              MsgBox "Format date pas bon", vbExclamation + vbDefaultButton2, "Date de la Pièce"
              datepiece = DateValue(Date)
              'cancel = True
            ElseIf datepiece > DateValue(Date) Then
              MsgBox "Date incompatible", vbExclamation + vbDefaultButton2, "Date de la Pièce"
              datepiece = DateValue(Date)
              cancel = True
         End If
    End Sub