Modifier une cellule format date avec Macro (affichage)

Bonjour le forum,

J'ai créé une macro avec UserForm me permettant de modifier un horaire de fin en fonction d'un horaire de début et du type de contrat de l'employé.

Le UserForm est appelé par un double clic dans la cellule de l'horaire de début.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Ok As Boolean
Ok = False
If Not Intersect(Target, Range("E5:E66")) Is Nothing Then
Ok = True
End If
If Ok = True Then
shift.Show
End If
End Sub

Mon "problème" est que le double clic à pour conséquence d'afficher le contenu de la cellule (car celui ci n'affiche que l'heure et pas la date complète). J'ai ajouté des SendKey "ENTER" dans mon code pour automatiser l'action de "validation" mais le résultat n'est pas très propre. Une fois validé avec le bouton on voit la valeur "complète" de la cellule puis elle disparait (malgré le ScreenUpdating sur False).

Une image pour avoir une idée visuelle du "problème" :

screenshot macroshift

Le code de mon UserForm (certainement pas très propre, je débute soyez indulgent ) :

Private Sub OptionButton_35ha_Click()
Label3.Visible = True
TextBox_fh.Visible = True
Label4.Visible = True
TextBox_fm.Visible = True
TextBox_fh.SetFocus
End Sub

Private Sub UserForm_Initialize()
TextBox1.Text = ActiveCell.Offset(0, -1)

End Sub

Private Sub valider_Click()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

'Valeur de shift d?but en fonction des valeurs rentr?es dans le userform
ActiveCell.Value = "01/01/2000 " & TextBox_dh & ":" & TextBox_dm
If TextBox1 = "" Then

Else
ActiveCell.Offset(0, -1).Value = TextBox1.Value
'Valeur de shift de fin en fonction du contrat CM
End If

If OptionButton_35h = True Then

ActiveCell.Offset(0, 1).Value = ActiveCell.Value + TimeValue("07:44:00")
ActiveCell.Offset(0, 2).Value = "01:00:00"
SendKeys "{ENTER}"

ElseIf OptionButton_16h = True Then

ActiveCell.Offset(0, 1).Value = ActiveCell.Value + TimeValue("08:44:00")
ActiveCell.Offset(0, 2).Value = "01:00:00"
SendKeys "{ENTER}"

ElseIf OptionButton_35ha = True And TextBox_fh <> "" And TextBox_fm <> "" Then
ActiveCell.Offset(0, 1).Value = "01/01/2000 " & TextBox_fh & ":" & TextBox_fm

Dim duree As Date
Dim deb As Date
Dim fin As Date

deb = "01/01/2000 " & TextBox_dh & ":" & TextBox_dm
fin = "01/01/2000 " & TextBox_fh & ":" & TextBox_fm
duree = fin - deb
'MsgBox duree

Select Case duree
    Case Is < "06:28"
    ActiveCell.Offset(0, 2).Value = "00:15:00"
    Case "06:29" To "07:00"
    ActiveCell.Offset(0, 2).Value = "00:45:00"
    Case "07:01" To "08:45"
    ActiveCell.Offset(0, 2).Value = "01:00:00"
    Case Is > "08:46"
    ActiveCell.Offset(0, 2).Value = "01:15:00"
End Select

SendKeys "{ENTER}"

ElseIf OptionButton_MT = True Then
ActiveCell.Offset(0, 1).Value = ActiveCell.Value + TimeValue("03:14:00")
ActiveCell.Offset(0, 2).Value = "00:00:00"
SendKeys "{ENTER}"

Else: MsgBox "Veuillez entrer une fin de shift"
TextBox_fh.SetFocus
Exit Sub

End If

Unload Me
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

Le fichier (double cliquer sur un horaire de la colonne "E" pour afficher le UserForm) :

Merci d'avance pour votre précieuse aide

M'enfin, OncleSid !?

Ne me dis-pas que tu n'arrives pas à exécuter la manip' ??

De plus, ici, je n'ai que l'heure... mais sans la MàJ de l'affichage de l'horaire...

A+

Je suis toujours dessus mais j'y arrive pas

Soit j'ai mal intégré ton code soit je comprends vraiment rien

Mais je n'ai pas abandonné t'inquiète

Rechercher des sujets similaires à "modifier format date macro affichage"