Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres convertir 2 minutes 30 en secondes...

hervoul

XLDnaute Occasionnel
Bonsoir,
J'ai vu plein de réponses , mais ça ne marche pas, ma cellule prends heures et minutes et non minutes et secondes
Donc désolé c'est un peu redondant....
Donc j'ai 2:30 dans une cellule, je voudrai la convertir en secondes dans une autre cellule...
Merci et désolé pour le sujet déjà traité 1000 fois....
RVoul
 

Pièces jointes

  • ClasseurRV.xlsx
    10.2 KB · Affichages: 15
Solution
Bonjour.
N'oubliez jamais que l'unité de temps des valeurs de cellules relevant des formats de dates et d'heures est toujours le jour.
Donc, en AF2 :
Code:
=0,5/(AE2*24)
avec format de cellule Standard.

Par ailleurs je vous déconseille d'utiliser le séparateur ":" pour des durées saisies ou affichées non standard, ne commençant pas par l'heure. Prenez plutôt l'apostrophe, et comme ce n'est pas interprété par Excel, transformez ce texte en valeur en jours dès le début.
Dans Feuil1 (Perf 3x500) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.CountLarge <> 1 Then Exit Sub
   If Intersect(Me.[D:D,F:F,H:H], Target) Is Nothing Then Exit Sub
   If VarType(Target.Value) <> vbString Then Exit Sub
   If Not Target.Value Like...

hervoul

XLDnaute Occasionnel
...c'est parce c'est plus facile de lire le chrono, de noter 1'47 à la volée que de réfléchir et de calculer en secondes.. mais oui dans l'absolu c'est idéal... un fichier excel, c'est pour facilement "couper les cheveux en 4"...non?
 

patricktoulon

XLDnaute Barbatruc
re
je vois pas pourquoi s'ennuyer a faire des calculs alors que la fonction existe
avec texte et le format voulue dans des accolades
le tout englobé encore une fois dans une fonction existante qui est CNUM
= fonction CNUM(fonction TEXTE(valeur ou cellule;"[unite demandé]"))
le fait de mettre le format entre accolades fait l'addition
c'est l'homologue de application.text de VBA


la même chose exactement pareil en VBA
VB:
Sub test()
MsgBox CLng(Application.Text(TimeValue("00:01:47"), "[ss]"))
End Sub
pas compliqué
 

Dranreb

XLDnaute Barbatruc
Bonjour.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.CountLarge <> 1 Then Exit Sub
   If VarType(Target.Value) <> vbString Then Exit Sub
   If Not Target.Value Like "*'*" Then Exit Sub
   Target.NumberFormat = "[m]\'ss"
   Target.Value = VBA.TimeValue("00:" & Replace(Target.Value, "'", ":"))
   End Sub
Ça c'est pour la cellule de saisie xx, et bien entendu dans l'autre cellule où vous les voulez en secondes, c'est =86400*xx avec format Standard.
Si vous pouvez être amené à saisir plus de 59 min 59 s il vaudrait peut être mieux :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.CountLarge <> 1 Then Exit Sub
   If VarType(Target.Value) <> vbString Then Exit Sub
   If Not Target.Value Like "*'*" Then Exit Sub
   Dim T() As String: T = Split(Target.Value & "''", "'")
   If T(0) = "" Then T(0) = "0"
   If T(1) = "" Then T(1) = "0"
   Target.NumberFormat = "[m]\'ss"
   Target.Value = TimeSerial(0, T(0), T(1))
   End Sub
 
Dernière édition:

Discussions similaires

Réponses
13
Affichages
356
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…