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
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é?
;)
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

Statistiques des forums

Discussions
312 209
Messages
2 086 267
Membres
103 168
dernier inscrit
isidore33