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: 14
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...

patricktoulon

XLDnaute Barbatruc
perso je ne m'ennuie pas avec ces considérations
je met ma colonne au format nombre sans decimales
et ma formule
=CNUM(TEXTE(CNUM(A2)*86400;"#0"))
demo.gif
 

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

Statistiques des forums

Discussions
312 215
Messages
2 086 324
Membres
103 179
dernier inscrit
BERSEB50