saisie format horaire

Le
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 !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #18607981
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 !


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

"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 !






Modeste
Le #18608741
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
Unss34
Le #18608991
Merci Modeste, la solution macro me semble parfaite pour mon cas car elle
évite les calculs intermédiaires.
Efficacité, simplicité, le top !

"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
Mgr T. Banni
Le #18609031
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"
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
Jacquouille
Le #18609151
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"
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





Publicité
Poster une réponse
Anonyme