Re,
Dans ton exemple il s'agit visiblement d'une date issue d'un autre fichier (ou autre) et dans ce cas le format est appliqué par défaut ou bien le contenu de ta cellule est saisi manuellement et il faut alors appliqué le format souhaité.
Regarde dans le fichier joint. Le format jj/mm/aaaa hh:mm:ss est appliqué en B1.
@+
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
For i = 1 To 18
Cells(i, 1) = Format(Cells(i, 1), "dd/mm/yyyy hh:mm")
Next i
Cancel = True
End Sub
Salut à vous, j'ai mis le code VBA, mais je pense que je l'ai pas bien mis.
j'ai même créer un module, où j'ai placé le code. mais lorsque je vais sur la macro rien ne marche.
là ça vient de moi,
Bonsoir.
Cette fonction perso permet de récupérer la date et l'heure correctement :
VB:
Function DateHeuFr(ByVal DateHeuUSA As String) As Date
Dim P As Long, TD() As String
P = InStr(DateHeuUSA, " "): TD = Split(Left$(DateHeuUSA, P - 1), "/")
DateHeuFr = DateSerial(TD(2), TD(0), TD(1)) + TimeValue(Mid$(DateHeuUSA, P + 1))
End Function
PrivateSub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel AsBoolean) For i = 1 To 18
Cells(i, 1) = Format(Cells(i, 1), "dd/mm/yyyy hh:mm:ss") Next i
Cancel = True EndSub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
For i = 1 To 100000
Cells(i, 1) = Format(Cells(i, 1), "dd/mm/yyyy hh:mm:ss")
Next i
Cancel = True
End Sub
J'ai mis 100000 pour avoir le max mais si je veux que ça aille jusqu'à la dernière ligne.
Y a t'il une modif.
Pas bon cette solution.
Outre qu'elle laisse la donnée sous forme de texte, elle ne marche que s'il n'y a pas de confusion possible entre le mois et le jour.
Testez voir ça :
VB:
Sub test()
MsgBox AvecFormat("3/13/2017 11:59:00 PM") & vbLf _
& AvecFormat("3/12/2017 11:59:00 PM")
End Sub
Function AvecFormat(ByVal S As String) As String
AvecFormat = """" & S & """ —› """ & Format(S, "dd/mm/yyyy hh:mm") & """."
End Function