Macro généralisée

Résolu/Fermé
velpa60 Messages postés 3 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 19 mars 2014 - 18 mars 2014 à 10:06
velpa60 Messages postés 3 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 19 mars 2014 - 19 mars 2014 à 17:25
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.
A voir également:

2 réponses

f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
18 mars 2014 à 10:34
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
velpa60 Messages postés 3 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 19 mars 2014
19 mars 2014 à 17:00
Bonjour,
J'essaie dès que possible, un grand merci a toi !!

Cdt.
0
velpa60 Messages postés 3 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 19 mars 2014
19 mars 2014 à 17:25
Marche nickel ! merci.
0