Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Input.Box et format des dates mm/dd ou dd/mm

Ghassen

XLDnaute Nouveau
Bonjour à tous

c'est surement un sujet qui a été plusieurs fois traités, mais j'arrive pas à trouver une réponse compléte et convaincante
j'utilise une applicattion.inputBox pour saisir des dates que je compare après
le problème c'est que le format par défaut étant mm/dd/yyyy ça devient aléatoire
je m'explique
je peux saisir 10/02/2022 ça se convertit donc à 02/10/2022
mais quand j'insére 15/02/2022 ça reste 15/02/2022 ce qui fausse la comparaison des dates
Voici une partie du code qui saisi et compare les valeurs
VB:
'Date Emission
        Do
            Texte1 = "Saisir la date d'emission du chèque" & Chr(13) & "Attention; Saisir sous Format : mm/dd/yyyy)"
            Texte2 = "Date Emission"
            variable = Application.InputBox(Texte1, Texte2)
            If variable = False Or IsDate(variable) = False Then Alerte1 = MsgBox("Merci de saisir une date!", vbCritical, "Erreur Saisi")
        Loop Until variable <> False And IsDate(variable) = True
        Target.Offset(, 1).Value = Format(variable, "dd/mm/yyyy")
        DateEmission = variable
              
    'Date Prévue
        Do
            Texte1 = "Saisir la date prévue d'encaissement du chèque" & Chr(13) & "Attention; Saisir sous Format : mm/dd/yyyy)"
            Texte2 = "Date encaissement prévue"
            variable = Application.InputBox(Texte1, Texte2)
            If variable = False Or IsDate(variable) = False Then Alerte1 = MsgBox("Merci de saisir une date!", vbCritical, "Erreur Saisi")
            If IsDate(variable) = True And variable < DateEmission Then Alerte2 = MsgBox("La date d'encaissment doit être après la date d'emission du chèque (le " & DateEmission & " )", vbCritical, "Erreur Saisi")
        Loop Until variable <> False And IsDate(variable) = True And variable >= DateEmission
        Target.Offset(, 4).Value = Format(variable, "dd/mm/yyyy")

où est ce que je me plante??

Merci pour vos aides.
 

patricktoulon

XLDnaute Barbatruc
Bonjour
Target.Offset(, 4).Value = datevalue(mavariable)
c'est tout a fait normal que tu ai ce problème

on envoie pas le string d'une date dans une cellule en espérant que ca fonctionne correctement
pour excel une date est u nombre correspondant au nombre de jour depuis 1900
si tu lui envoie fort(un string de date,"dd/mm/yyyy") tu lui envoie un string

donc soit tu lui envoie datevalue(tavariable) soit cdate( tavariable)

pigé?
 

Ghassen

XLDnaute Nouveau
I see
Merci patricktoulon
 

Ghassen

XLDnaute Nouveau
Bonjour Ghassen
Essayez avec Cdate(Value) pour avoir le bon format. Voir PJ.
Mais je pense que cela peut aussi dépendre de vos options Windows de format. A tester.
Bonjour Ghassen
Essayez avec Cdate(Value) pour avoir le bon format. Voir PJ.
Mais je pense que cela peut aussi dépendre de vos options Windows de format. A tester.
Merci sylvanu
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…