Excel vba textBox format Date

Résolu
maryblue25 Messages postés 15 Statut Membre -  
maryblue25 Messages postés 15 Statut Membre -
Bonjour,

j'ai un souci avec un userform que j'ai crée. En effet j'ai 2 text box (txt3 et txt4). Txt3 désigne la date de départ et txt4 celle de fin. Je veux que txt4 soit > à txt4. Et aussi et surtout je veux que la date soit sous format dd/mm/aaaa.
Je vous envoie le petit code que j'ai écris :

Private Sub txt3_AfterUpdate()

'Faire que l'on ne puisse entrer que des dates dans txt3
If txt3.Value <> "" Then
If Not IsDate(txt3.Value) Then
MsgBox "Date incorrecte.", vbCritical + vbOKOnly, "Erreur"
txt3.Value = ""
Else
txt3.Value = CDate(txt3.Value)
End If

End If

End Sub

Private Sub txt4_AfterUpdate()

'Faire que l'on ne puisse entrer que des dates dans txt4
If txt4.Value <> "" Then
If Not IsDate(txt4.Value) Then
MsgBox "Date incorrecte.", vbCritical + vbOKOnly, "Erreur"
txt4.Value = ""
Else
txt4.Value = CDate(txt4.Value)

End If
End If

'La date entrée doit être supérieure à celle de txt3
If txt4.Value < txt3.Value Then
MsgBox "Veuillez saisir une date postérieure à celle de départ.", vbOKOnly
End If

End Sub

Cependant ca ne marche pas! Quand j'entre dans txt3 : 30/09/09 et dans txt4 : 7/12/09, il me dit que la date que j'entre en second n'est pas postérieure à la première.
Pourriez vous m'aider svp?

Cdlt,
Mary (en détresse encore une fois)
Configuration: Windows XP Internet Explorer 6.0

7 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    J'ai repris ma bricole (excuse facile: on est un lendemain de f^te)
    https://www.cjoint.com/?hpm7UiREIy
    1
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    essaies la fonction "datevalue"
    datevalue(ladate)

    "ladate" peut être du texte
    0
  3. maryblue25 Messages postés 15 Statut Membre 1
     
    Encore une fois merci pour ta réponse, décidément tu es toujours là pour m'aider...
    Puis-je encore abuser de tes connaissances en vb?
    Ca ne marche toujours pas! voici ce qui est écris maintenant. (peu de choses ont changé)
    Private Sub txt3_AfterUpdate()

    'Faire que l'on ne puisse entrer que des dates dans txt3
    If txt3.Value <> "" Then
    If Not IsDate(txt3.Value) Then
    MsgBox "Date incorrecte.", vbCritical + vbOKOnly, "Erreur"
    txt3.Value = ""
    Else
    txt3.Value = DateValue(txt3.Value)

    End If

    End If

    End Sub

    Private Sub txt4_AfterUpdate()

    'Faire que l'on ne puisse entrer que des dates dans txt4
    If txt4.Value <> "" Then
    If Not IsDate(txt4.Value) Then
    MsgBox "Date incorrecte.", vbCritical + vbOKOnly, "Erreur"
    txt4.Value = ""
    Else
    txt4.Value = DateValue(txt4.Value)

    End If
    End If

    'La date entrée doit être supérieure à celle de txt3
    If txt4.Value < txt3.Value Then
    MsgBox "Veuillez saisir une date postérieure à celle de départ.", vbOKOnly
    txt4.Value = ""
    End If

    End Sub
    0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    essaies
    If Txt4 Like "##/##/####" Then
    .....
    End If

    la date peut saisie sie sous la forme JJ/MM/AA ou J/M/A ou J/M ou J-m-A ou.... Mercerdi 15 juillet 2009 etc... bref les formats date prévus par XL (format-cellule-nombre)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. maryblue25 Messages postés 15 Statut Membre 1
     
    En fait il n'y a pas de souci, il reconnait le format date! Le hic est que je n'arrive pas à savoir s'il la considèrer en jj/mm/aaaa ou en mm/jj/aaaa.
    Et en plus le concept de date inférieure à une autre n'a pas l'air d'être bon! enfin mon écriture! Quand je tape des dates pour vérifier, ca donne un peu du n'importe quoi...
    Je suis complètement perdue!
    0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    re,
    Ze big problème est qu'il y a des dates où quelquesoit l'environnement (fr ou uk) il y aura ambiguité style
    10/5/9 est ce le 5 octobre uk ou le 10 mai(fr)

    je t'ai bricolé un truc où on demande confirmation que tu pourras adapter si ca te convient
    https://www.cjoint.com/?hplEreqUmb

    j'en ai profité pour te donner une manière de transformer le jour en nombre standard pour comparer (datevalue n'était pas terrible)
    0
  8. maryblue25 Messages postés 15 Statut Membre 1
     
    Merci beaucoup de toutes ces réponses, elles m'ont vraiment beaucoup aidé...
    J'espère qu'un jour je pourrais rendre la pareille!

    Bonne journée
    0