Formater une plage en horaire
Résolu
vieuxray
-
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Bonjour a toutes et tous, forum bonjour
Excel 2007 - VBA
Je souhaiterai svp formater une plage de cellules (F2:F16) sous un format spécial
je voudrais que lorsque je tapes en (F2 ou F3 etc etc) Ex: 1255 que cela écrive directement sous
ce format 12h 45 et si il y a un zéro devant 01h 44 >>> écrire 1h 44 en supprimant le zéro
Où autre solution en VBA, je vous remercie pour votre aide et votre savoir partagé.
Bonne après midi a tous
Cdlt Ray
Excel 2007 - VBA
Je souhaiterai svp formater une plage de cellules (F2:F16) sous un format spécial
je voudrais que lorsque je tapes en (F2 ou F3 etc etc) Ex: 1255 que cela écrive directement sous
ce format 12h 45 et si il y a un zéro devant 01h 44 >>> écrire 1h 44 en supprimant le zéro
Où autre solution en VBA, je vous remercie pour votre aide et votre savoir partagé.
Bonne après midi a tous
Cdlt Ray
4 réponses
-
Bonjour Ray,
Dans le module de la feuille, essaies :Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, [F2:F16]) Is Nothing Then Exit Sub If Not IsNumeric(Target.Value) Then Exit Sub Application.EnableEvents = False Target.Value = (Int(Target.Value / 100) / 24) + _ ((Target.Value Mod 100) / (24 * 60)) Application.EnableEvents = True Target.NumberFormatLocal = "hh""h""mm;@" End Sub -
Bonjour Ray
Je me suis encore fais piéger par une bizarrerie d'Excel !!!
J'avais oublié que la fonction IsNumeric() considère qu'une cellule vide contient un zéro !
Voici le code modifié :Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Intersect(Target, [F2:F16]) Is Nothing Then Exit Sub If Not IsNumeric(Target.Value) Then Exit Sub If Target.Formula = "" Then Exit Sub Application.EnableEvents = False Target.Value = (Int(Target.Value / 100) / 24) + _ ((Target.Value Mod 100) / (24 * 60)) Application.EnableEvents = True Target.NumberFormatLocal = "h""h""mm;@" End Sub -
Salut Patrice33740,
Tout d'abord merci de t'etre interresser a mon post, et merci pour le code.
j'ai essayer ca fonctionne bien, mais quand je tape 0155 il m'écrit bien 1h55 ça OK
mais en supposant que je me sois tromper alors j'efface la cellule et ca me laisse des zéros ecrit comme suit 0h00
quand j'efface je souhaiterai svp effacer toute la cellule et entrer une nouvelle valeur
Encore merci pour ton aide
Cordialement Ray -
Salut Patrice33740,
Merci bien pour ta réponse et pour la modification.
ça fonctionne bien comme souhaiter et je te remercie
beaucoup pour ton aide que j'ai beaucoup apprécier.
Je clos donc le sujet avec encore pleins de merci, bonnnes
vacances si tu part et a bientot sans doute.
Bye, Bien cordialement Raymond