Macro généralisée
Résolu
velpa60
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
velpa60 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
velpa60 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- Macro généralisée
- Contribution sociale généralisée - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
2 réponses
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