blord
XLDnaute Impliqué
Bonsoir à tous,
J'aimerais utiliser le code ci-bas dans mon projet (merci à James007 et à Dull !).
Le problème qui survient est le suivant : Lorsque la feuille est totalement sans protection, le code fonctionne à merveille. Lorsque la feuille est protégée (évidemment, les cellules indiquées dans la plage ne sont pas protégées), le code retourne toujours le message Heure invalide ???
Auriez-vous une idée pour éviter ce problème ?
Merci à tous pour vos suggestions ...
Benoit Lord
J'aimerais utiliser le code ci-bas dans mon projet (merci à James007 et à Dull !).
Le problème qui survient est le suivant : Lorsque la feuille est totalement sans protection, le code fonctionne à merveille. Lorsque la feuille est protégée (évidemment, les cellules indiquées dans la plage ne sont pas protégées), le code retourne toujours le message Heure invalide ???
Auriez-vous une idée pour éviter ce problème ?
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, Range("C8:I9,C12:I13,C16:I17,C41:I57")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
Dim DateStr As String
On Error GoTo EndMacro
Application.EnableEvents = False
Target.NumberFormat = "General"
If Target.HasFormula = False Then
Select Case Len(Target.Formula)
Case 3
DateStr = Left(Target.Formula, 1) & ":" & Right(Target.Formula, 2)
Case 4
DateStr = Left(Target.Formula, 2) & ":" & Right(Target.Formula, 2)
Case Else
Err.Raise 0
End Select
Target.Formula = CDate(DateStr)
Target.NumberFormat = "hh:mm"
End If
Application.EnableEvents = True
Exit Sub
EndMacro:
Target.ClearContents
Target.Select
MsgBox "Heure invalide"
Application.EnableEvents = True
End Sub
Merci à tous pour vos suggestions ...
Benoit Lord