Format date

Bonjour

je mets ma cellule en format date genre 24/03/2017

si je tape 240317 j'ai une date complètement erronnée genre 17/12/2557

pour qu'elle soit bonne je dois absolument taper les /

il y a t il quelque chose à faire pour éviter de les taper et avoir la bonne date ?

Merci d'avance

Bonjour,

si tu n'introduis pas un élément qui permet de reconnaitre qu'il s'agit d'une date; le nombre est interprété comme nombre de jours depuis le 1/1/1900, ce nombre converti en date te donne le 17/12/2257.

pour ne pas avoir à introduire les "/", il te faudra passer par une cellule intermédiaire ou par une procédure événementielle .

exemple si tu introduis ta valeur en A1, en B1 tu mets la formule suivante

=DATEVALUE(MID(A1,1,2) & "/" & MID(A1,3,2) & "/" & MID(A1,5,2))

et tu mets B1 au format date

exemple via macro procédure événementielle qui convertit une date introduite en colonne A

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        Application.EnableEvents = False
        Target.NumberFormat = 0
        c = Format(Target, "000000")
        Target = DateSerial(Mid(c, 5, 2), Mid(c, 3, 2), Left(c, 2))
        Target.NumberFormat = "dd/mm/yyyy"
        Application.EnableEvents = True
    End If
End Sub
h2so4 a écrit :

Bonjour,

si tu n'introduis pas un élément qui permet de reconnaitre qu'il s'agit d'une date; le nombre est interprété comme nombre de jours depuis le 1/1/1900, ce nombre converti en date te donne le 17/12/2257.

pour ne pas avoir à introduire les "/", il te faudra passer par une cellule intermédiaire ou par une procédure événementielle .

exemple si tu introduis ta valeur en A1, en B1 tu mets la formule suivante

=DATEVALUE(MID(A1,1,2) & "/" & MID(A1,3,2) & "/" & MID(A1,5,2))

et tu mets B1 au format date

exemple via macro procédure événementielle qui convertit une date introduite en colonne A

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        Application.EnableEvents = False
        Target.NumberFormat = 0
        c = Format(Target, "000000")
        Target = DateSerial(Mid(c, 5, 2), Mid(c, 3, 2), Left(c, 2))
        Target.NumberFormat = "dd/mm/yyyy"
        Application.EnableEvents = True
    End If
End Sub

Bonjour

j'ai testé avec ta macro évènementielle et ça fonctionne très bien

merci avec beaucoup de retard mais j'avais complètement laissé tombé mon problème

Cordialement

Rechercher des sujets similaires à "format date"