Saisir une date sans les /

Le
Nathalie LEBAS
Bonjour tous,

Je souhaiterais pouvoir saisir une date sous la forme
280404 et obtenir l'affichage 28/04/04.
Est-ce possible sous Excel et comment ?
Merci de votre aide
Nathalie
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Benead
Le #1345987
Bonsoir Nathalie,

Si ce n'est que pour l'affichage, tu peux mettre en format de nombre (Ctrl+Maj+1) 00"/"00"/"00.
Par contre si tu as besoin de récupérer les valeurs en tant que date tu dois passer par une macro événementielle de ce type :

' *** A placer dans le module de la feuille ***
Option Explicit
Public SaveFormat As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
SaveFormat = Target.NumberFormat
Target.NumberFormat = "General"
Target = Empty
End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Dt As String
If Target.Count = 1 Then
If Not Intersect(Target, Range("A:A")) Is Nothing Then ' Colonne A (possibilité de mettre une plage :"A1:A10")
If (Len(Target) = 5 Or Len(Target) = 6) And IsNumeric(Target) Then
Application.EnableEvents = False
Target.NumberFormat = "General"
Dt = Format(Target, "000000")
If IsDate(Mid(Dt, 1, 2) & "/" & Mid(Dt, 3, 2) & "/" & Mid(Dt, 5, 2)) Then _
Target.Value = CDate(Mid(Dt, 1, 2) & "/" & Mid(Dt, 3, 2) & "/" & Mid(Dt, 5, 2))
If SaveFormat <> "General" Then Target.NumberFormat = SaveFormat
Application.EnableEvents = True
End If
End If
End If
End Sub

'*** Fin de code *******************************

L'événement Worksheet_BeforeDoubleClick, récupère le format de nombre de la cellule puis efface celle-ci, L'événement Worksheet_Change fait plusieurs
contrôle puis converti le nombre (5 ou 6 chiffres) en format date.
Dans la ligne If Not Intersect... tu renseigne la plage (Range) qui doit être potentiellement convertie.
Attention dans le cas de modification de date, il faut le faire par double clic et non par F2, sinon le résultat sera faux.

Si tu as un pb pour utiliser cette solution, reviens nous voir dans ce fil.

--
A+
Benead
Bretagne
Xl97
-------- ;-)

Nathalie LEBAS a écrit:
Bonjour à tous,

Je souhaiterais pouvoir saisir une date sous la forme
280404 et obtenir à l'affichage 28/04/04.
Est-ce possible sous Excel et comment ?
Merci de votre aide
Nathalie



--
A+
Benead
Bretagne
Xl97
-------- ;-)

FxM
Le #1345979
Bonsoir Nathalie,

Si c'est pour un UNIQUE but d'affichage, tu peux appliquer :
format | cellule | personnalisé | 00"/"00"/"00
Attention! Ta cellule contiendra toujours un nombre et en aucun cas
une date.

@+
FxM



Nathalie LEBAS wrote:

Bonjour à tous,

Je souhaiterais pouvoir saisir une date sous la forme
280404 et obtenir à l'affichage 28/04/04.
Est-ce possible sous Excel et comment ?
Merci de votre aide
Nathalie


jean esselin
Le #1345978
Si tu tapes 6 chiffres à la suite dans A1, par exemple 280404 , tu peux
écrire dans n'importe quelle cellule
=GAUCHE(A1;2) &"/" & STXT(A1;3;2) & "/" & DROITE(A1;2)
et il apparaîtra dans cette cellule 28/04/04

--

physique biologie maths
http://perso.club-internet.fr/trois
FxM
Le #1345976
Sorry pour le doublon :o|
FxM


Benead wrote:

Bonsoir Nathalie,

Si ce n'est que pour l'affichage, tu peux mettre en format de nombre
(Ctrl+Maj+1) 00"/"00"/"00.
Par contre si tu as besoin de récupérer les valeurs en tant que date tu
dois passer par une macro événementielle de ce type :

' *** A placer dans le module de la feuille ***
Option Explicit
Public SaveFormat As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range,
Cancel As Boolean)
SaveFormat = Target.NumberFormat
Target.NumberFormat = "General"
Target = Empty
End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Dt As String
If Target.Count = 1 Then
If Not Intersect(Target, Range("A:A")) Is Nothing Then ' Colonne
A (possibilité de mettre une plage :"A1:A10")
If (Len(Target) = 5 Or Len(Target) = 6) And
IsNumeric(Target) Then
Application.EnableEvents = False
Target.NumberFormat = "General"
Dt = Format(Target, "000000")
If IsDate(Mid(Dt, 1, 2) & "/" & Mid(Dt, 3, 2) & "/" &
Mid(Dt, 5, 2)) Then _
Target.Value = CDate(Mid(Dt, 1, 2) & "/" & Mid(Dt, 3, 2)
& "/" & Mid(Dt, 5, 2))
If SaveFormat <> "General" Then Target.NumberFormat =
SaveFormat
Application.EnableEvents = True
End If
End If
End If
End Sub

'*** Fin de code *******************************

L'événement Worksheet_BeforeDoubleClick, récupère le format de nombre de
la cellule puis efface celle-ci, L'événement Worksheet_Change fait
plusieurs contrôle puis converti le nombre (5 ou 6 chiffres) en format
date.
Dans la ligne If Not Intersect... tu renseigne la plage (Range) qui doit
être potentiellement convertie.
Attention dans le cas de modification de date, il faut le faire par
double clic et non par F2, sinon le résultat sera faux.

Si tu as un pb pour utiliser cette solution, reviens nous voir dans ce fil.



gilbert
Le #1326792
bonjour

petit problème avec la formule de jean si la date commence par un seul
chiffre

ex :010404

=SI(NBCAR(A1)=6;GAUCHE(A1;2) &"/" & STXT(A1;3;2) & "/" &
DROITE(A1;2);GAUCHE(A1;1) &"/" & STXT(A1;2;2) & "/" & DROITE(A1;2))

Gilbert


"jean esselin" news:40901d41$0$7788$
Si tu tapes 6 chiffres à la suite dans A1, par exemple 280404 , tu peux
écrire dans n'importe quelle cellule
=GAUCHE(A1;2) &"/" & STXT(A1;3;2) & "/" & DROITE(A1;2)
et il apparaîtra dans cette cellule 28/04/04

--

physique biologie maths
http://perso.club-internet.fr/trois




Le #1345953
Merci de ta réponse, je teste
-----Message d'origine-----
Bonsoir Nathalie,

Si c'est pour un UNIQUE but d'affichage, tu peux
appliquer :

format | cellule | personnalisé | 00"/"00"/"00
Attention! Ta cellule contiendra toujours un nombre et en
aucun cas

une date.

@+
FxM



Nathalie LEBAS wrote:

Bonjour à tous,

Je souhaiterais pouvoir saisir une date sous la forme
280404 et obtenir à l'affichage 28/04/04.
Est-ce possible sous Excel et comment ?
Merci de votre aide
Nathalie
.





Le #1345952
Merci de ta réponse, je teste
-----Message d'origine-----
Bonsoir Nathalie,

Si ce n'est que pour l'affichage, tu peux mettre en
format de nombre (Ctrl+Maj+1) 00"/"00"/"00.

Par contre si tu as besoin de récupérer les valeurs en
tant que date tu dois passer par une macro événementielle

de ce type :

' *** A placer dans le module de la feuille ***
Option Explicit
Public SaveFormat As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As
Excel.Range, Cancel As Boolean)

SaveFormat = Target.NumberFormat
Target.NumberFormat = "General"
Target = Empty
End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Dt As String
If Target.Count = 1 Then
If Not Intersect(Target, Range("A:A")) Is
Nothing Then ' Colonne A (possibilité de mettre une

plage :"A1:A10")
If (Len(Target) = 5 Or Len(Target) = 6) And
IsNumeric(Target) Then

Application.EnableEvents = False
Target.NumberFormat = "General"
Dt = Format(Target, "000000")
If IsDate(Mid(Dt, 1, 2) & "/" & Mid(Dt,
3, 2) & "/" & Mid(Dt, 5, 2)) Then _

Target.Value = CDate(Mid(Dt, 1, 2) & "/"
& Mid(Dt, 3, 2) & "/" & Mid(Dt, 5, 2))

If SaveFormat <> "General" Then
Target.NumberFormat = SaveFormat

Application.EnableEvents = True
End If
End If
End If
End Sub

'*** Fin de code *******************************

L'événement Worksheet_BeforeDoubleClick, récupère le
format de nombre de la cellule puis efface celle-ci,

L'événement Worksheet_Change fait plusieurs
contrôle puis converti le nombre (5 ou 6 chiffres) en
format date.

Dans la ligne If Not Intersect... tu renseigne la plage
(Range) qui doit être potentiellement convertie.

Attention dans le cas de modification de date, il faut le
faire par double clic et non par F2, sinon le résultat

sera faux.

Si tu as un pb pour utiliser cette solution, reviens nous
voir dans ce fil.


--
A+
Benead
Bretagne
Xl97
-------- ;-)

Nathalie LEBAS a écrit:
Bonjour à tous,

Je souhaiterais pouvoir saisir une date sous la forme
280404 et obtenir à l'affichage 28/04/04.
Est-ce possible sous Excel et comment ?
Merci de votre aide
Nathalie



--
A+
Benead
Bretagne
Xl97
-------- ;-)

.




Le #1345951
Merci également de ta réponse
-----Message d'origine-----
Si tu tapes 6 chiffres à la suite dans A1, par exemple
280404 , tu peux

écrire dans n'importe quelle cellule
=GAUCHE(A1;2) &"/" & STXT(A1;3;2) & "/" & DROITE(A1;2)
et il apparaîtra dans cette cellule 28/04/04

--

physique biologie maths
http://perso.club-internet.fr/trois


.



Publicité
Poster une réponse
Anonyme