Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Saisir une date sans les /

8 réponses
Avatar
Nathalie LEBAS
Bonjour =E0 tous,

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

8 réponses

Avatar
Benead
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
-------- ;-)

Avatar
FxM
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


Avatar
jean esselin
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
Avatar
FxM
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.



Avatar
gilbert
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" a écrit dans le message de
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




Avatar
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
.





Avatar
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
-------- ;-)

.




Avatar
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


.