Macro généralisée

Résolu
Bonjour,

j'ai créé un fichier de pointage en heure avec comptabilisation des heures, et pour simplifier la tache des gens qui vont le remplir j'ai trouvé un macro qui applique automatiquement le format "00:00" dans chaque cellules.
Ex : pour 12h30 on écrit juste 1230 et excel fait le reste.
je souhaiterais exclure certaine cellule qui elles ne contiennent pas des heures.

voici la macro :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lheure As Date

If Target.Count > 1 Then Exit Sub
On Error GoTo HeureMauvaise
Application.EnableEvents = False
Select Case Len(Target)
Case 1, 2
Target = CDate("0:" & Target)
Target.NumberFormat = "hh:mm;@"
Case 3
Target = CDate(Left(Target, 1) & ":" & Mid(Target, 2))
Target.NumberFormat = "hh:mm;@"
Case 4
Target = CDate(Left(Target, 2) & ":" & Mid(Target, 3))
Target.NumberFormat = "hh:mm;@"
End Select
HeureMauvaise:
Application.EnableEvents = True
End Sub

Si quelqu'un peu m'aider merci a vous.

Cordialement.

2 réponses

  1. Bonjour,
    J'essaie dès que possible, un grand merci a toi !!

    Cdt.
    0
    1. Marche nickel ! merci.
      0
  2. Bonjour,

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Lheure As Date
    On Error GoTo HeureMauvaise

    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    'plages de cellules a adapter
    If Not Application.Intersect(Target, Range("A2:A10, C2:C10, D2, D10, E2:E10")) Is Nothing Then
    Select Case Len(Target)
    Case 1, 2
    Target = CDate("0:" & Target)
    Target.NumberFormat = "hh:mm;@"
    Case 3
    Target = CDate(Left(Target, 1) & ":" & Mid(Target, 2))
    Target.NumberFormat = "hh:mm;@"
    Case 4
    Target = CDate(Left(Target, 2) & ":" & Mid(Target, 3))
    Target.NumberFormat = "hh:mm;@"
    End Select
    End If
    HeureMauvaise:
    Application.EnableEvents = True
    End Sub
    0