XL 2016 Forcer format heure dans une plage de cellule

Mimi

XLDnaute Occasionnel
Bonjour à tous,
J'ai trouvé ceci sur un forum :
Lorsque j'écris 1200 sa me transforme en A1 12:00.

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
Application.EnableEvents = False
x = Format(zz, "0000")
zz.Value = Left(x, 2) & ":" & Right(x, 2)
Application.EnableEvents = True
End Sub

Mon problème c'est en A1 seulement et je voudrais que ce soit sur une plage de cellule exemple : D2:D300
Ensuite dans le même principe et dans une plage de cellule C2:C300 est-il Possible de faire ceci :
j'écris 26112019 sa se transforme en 26/11/2019.
D'avance je vous remercie
Mimi
 

fanfan38

XLDnaute Barbatruc
Bonjour,
Un fichier exemple est TOUJOURS le bienvenu...
VB:
Private Sub Worksheet_Change(ByVal zz As Range)
  Dim x As String
If zz.Column < 3 Or zz.Column > 4 Then Exit Sub
If zz.Row < 2 Or zz.Row > 300 Then Exit Sub
Application.EnableEvents = False
If zz.Column = 4 Then
  x = Format(zz, "0000")
  zz.Value = Left(x, 2) & ":" & Right(x, 2)
Else
  x = Format(zz, "00000000")
  zz.Value = Left(x, 2) & "/" & Mid(x, 3, 2) & "/" & Right(x, 4)
End If
Application.EnableEvents = True
End Sub

A+ François
 

Discussions similaires

Statistiques des forums

Discussions
312 156
Messages
2 085 812
Membres
102 988
dernier inscrit
doryan