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