Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

saisie format horaire

6 réponses
Avatar
Unss34
Bonjour,
je dois saisir des temps de passage sur lesquels se font des calculs (temps
au tour...)
j'ai donc mis les cellules au format personnalisé mm:ss et la saisie se fait
ainsi: pour 1mn12sec par exemple on saisit: 0:1:12; l'affichage montre 1:12
pas de pb, mais est-il possible de simplifier en saisissant 0112 qui serait
validé en 0:1:12 au format horaire bien sûr ?
je sais faire avec un format personnalisé, mais la saisie devient du texte,
et les calculs sont faux car 1mn = 60 sec...
Merci de votre aide !

6 réponses

Avatar
Daniel.C
Bonjour.
Mets 112 dans une colonne saisie (ici B) et dans ta colonne au format
horaire :
=ENT(B1/100)/1440+MOD(B1;100)/86400
en espérant que le temps au tour sera inférieur à 1h.
Cordialement.
Daniel

Bonjour,
je dois saisir des temps de passage sur lesquels se font des calculs (temps
au tour...)
j'ai donc mis les cellules au format personnalisé mm:ss et la saisie se fait
ainsi: pour 1mn12sec par exemple on saisit: 0:1:12; l'affichage montre 1:12
pas de pb, mais est-il possible de simplifier en saisissant 0112 qui serait
validé en 0:1:12 au format horaire bien sûr ?
je sais faire avec un format personnalisé, mais la saisie devient du texte,
et les calculs sont faux car 1mn = 60 sec...
Merci de votre aide !


Avatar
Unss34
Daniel, merci, ta formule marche, mais j'aurai des temps supérieur à 1h.

"Daniel.C" a écrit dans le message de news:

Bonjour.
Mets 112 dans une colonne saisie (ici B) et dans ta colonne au format
horaire :
=ENT(B1/100)/1440+MOD(B1;100)/86400
en espérant que le temps au tour sera inférieur à 1h.
Cordialement.
Daniel

Bonjour,
je dois saisir des temps de passage sur lesquels se font des calculs
(temps au tour...)
j'ai donc mis les cellules au format personnalisé mm:ss et la saisie se
fait ainsi: pour 1mn12sec par exemple on saisit: 0:1:12; l'affichage
montre 1:12
pas de pb, mais est-il possible de simplifier en saisissant 0112 qui
serait validé en 0:1:12 au format horaire bien sûr ?
je sais faire avec un format personnalisé, mais la saisie devient du
texte, et les calculs sont faux car 1mn = 60 sec...
Merci de votre aide !






Avatar
Modeste
Bonsour® Unss34

je dois saisir des temps de passage sur lesquels se font des calculs
(temps au tour...)
j'ai donc mis les cellules au format personnalisé mm:ss et la saisie
se fait ainsi: pour 1mn12sec par exemple on saisit: 0:1:12;
l'affichage montre 1:12 pas de pb, mais est-il possible de simplifier
en saisissant 0112 qui serait validé en 0:1:12 au format horaire bien
sûr ?
je sais faire avec un format personnalisé, mais la saisie devient du
texte, et les calculs sont faux car 1mn = 60 sec...



1 - Sans macro, en séparant plage de saisie et plage de calcul
en A1 : 0112
en B1 : =TEMPS(ENT(A1/10000);MOD(A1/100;100);MOD(A1;100))

2 - l'aide d'un macro événementielle limitée à la plage de saisie :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Application.Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub

Application.EnableEvents = False
If Target.HasFormula = False And IsNumeric(Target) Then
Target.Value = TimeSerial(Int(Target / 10000), (Int(Target / 100) Mod 100), Target Mod 100)
Target.NumberFormat = "[h]:mm:ss"
Else
MsgBox "Saisie non conforme"
End If
Application.EnableEvents = True
End Sub
Avatar
Unss34
Merci Modeste, la solution macro me semble parfaite pour mon cas car elle
évite les calculs intermédiaires.
Efficacité, simplicité, le top !

"Modeste" a écrit dans le message de news:

Bonsour® Unss34

je dois saisir des temps de passage sur lesquels se font des calculs
(temps au tour...)
j'ai donc mis les cellules au format personnalisé mm:ss et la saisie
se fait ainsi: pour 1mn12sec par exemple on saisit: 0:1:12;
l'affichage montre 1:12 pas de pb, mais est-il possible de simplifier
en saisissant 0112 qui serait validé en 0:1:12 au format horaire bien
sûr ?
je sais faire avec un format personnalisé, mais la saisie devient du
texte, et les calculs sont faux car 1mn = 60 sec...



1 - Sans macro, en séparant plage de saisie et plage de calcul
en A1 : 0112
en B1 : =TEMPS(ENT(A1/10000);MOD(A1/100;100);MOD(A1;100))

2 - l'aide d'un macro événementielle limitée à la plage de saisie :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Application.Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub

Application.EnableEvents = False
If Target.HasFormula = False And IsNumeric(Target) Then
Target.Value = TimeSerial(Int(Target / 10000), (Int(Target / 100) Mod
100), Target Mod 100)
Target.NumberFormat = "[h]:mm:ss"
Else
MsgBox "Saisie non conforme"
End If
Application.EnableEvents = True
End Sub
Avatar
Mgr T. Banni
ce n'est pas parce que vous habitez au nord qu'il vous faille répondre au
sud de la question, mon fils
Mgr T.B. soucieux de remettre dans le droit chemin ses ouailles égarées

"Modeste" a écrit dans le message de news:

Bonsour® Unss34

je dois saisir des temps de passage sur lesquels se font des calculs
(temps au tour...)
j'ai donc mis les cellules au format personnalisé mm:ss et la saisie
se fait ainsi: pour 1mn12sec par exemple on saisit: 0:1:12;
l'affichage montre 1:12 pas de pb, mais est-il possible de simplifier
en saisissant 0112 qui serait validé en 0:1:12 au format horaire bien
sûr ?
je sais faire avec un format personnalisé, mais la saisie devient du
texte, et les calculs sont faux car 1mn = 60 sec...



1 - Sans macro, en séparant plage de saisie et plage de calcul
en A1 : 0112
en B1 : =TEMPS(ENT(A1/10000);MOD(A1/100;100);MOD(A1;100))

2 - l'aide d'un macro événementielle limitée à la plage de saisie :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Application.Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub

Application.EnableEvents = False
If Target.HasFormula = False And IsNumeric(Target) Then
Target.Value = TimeSerial(Int(Target / 10000), (Int(Target / 100) Mod
100), Target Mod 100)
Target.NumberFormat = "[h]:mm:ss"
Else
MsgBox "Saisie non conforme"
End If
Application.EnableEvents = True
End Sub
Avatar
Jacquouille
Ah, je retrouve le "Monseigneur" des grands jours.
La gouaille rimant avec ripaille, j'en déduis que la Sainte Robe est de
nouveau survolée par le pont aérien du Saint Amour.....
Que Monseigneur continue à bien regarder où il met les pieds. Pour ce faire,
point trop de trous à la ceinture il ne faut.

Jacques, qui prie pour la santé de sa Sainteté.
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"Mgr T. Banni" a écrit dans le message de news:

ce n'est pas parce que vous habitez au nord qu'il vous faille répondre au
sud de la question, mon fils
Mgr T.B. soucieux de remettre dans le droit chemin ses ouailles égarées

"Modeste" a écrit dans le message de news:

Bonsour® Unss34

je dois saisir des temps de passage sur lesquels se font des calculs
(temps au tour...)
j'ai donc mis les cellules au format personnalisé mm:ss et la saisie
se fait ainsi: pour 1mn12sec par exemple on saisit: 0:1:12;
l'affichage montre 1:12 pas de pb, mais est-il possible de simplifier
en saisissant 0112 qui serait validé en 0:1:12 au format horaire bien
sûr ?
je sais faire avec un format personnalisé, mais la saisie devient du
texte, et les calculs sont faux car 1mn = 60 sec...



1 - Sans macro, en séparant plage de saisie et plage de calcul
en A1 : 0112
en B1 : =TEMPS(ENT(A1/10000);MOD(A1/100;100);MOD(A1;100))

2 - l'aide d'un macro événementielle limitée à la plage de saisie :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Application.Intersect(Target, Range("A1:A100")) Is Nothing Then Exit
Sub
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub

Application.EnableEvents = False
If Target.HasFormula = False And IsNumeric(Target) Then
Target.Value = TimeSerial(Int(Target / 10000), (Int(Target / 100) Mod
100), Target Mod 100)
Target.NumberFormat = "[h]:mm:ss"
Else
MsgBox "Saisie non conforme"
End If
Application.EnableEvents = True
End Sub