Mise en conformité cellule (temps)

Bonjour Forum,

Quelqu'un aurait une formule/astuce pour mettre en conformité une cellule avec le contenu suivant "JJ Jour(s) HH Heure(s) MM Min(s) SS Sec(s)",

Le résultat attendu est une valeur 'chiffre' correspondant au nombre de jours, heures, minute et secondes,

PS : le contenu de la cellule n'est pas figé au format cité, il peut prendre que des HH et MM ou JJ et HH etc.

N'hésitez pas si besoin de plus de précisions,

Merci

Bonjour,

format jj hh:mm:ss

ou bien je n'ai pas compris ! dans ce cas mets des exemples sur un fichier excel

Bonjour,

Steelson

Pas sûr de bien comprendre :

jj "jour(s)" hh "heure(s)" mm "minute(s) "ss "seconde(s)"

Hello Theze

In fine c'est peut-être ceci que tu souhaites ?

Tarnsformer 04 "jour(s)" 04 "heure(s)" 25 "minute(s) "30 "seconde(s)" par exemple et obtenir 4,184375

Avec utilisation de regexp

=ChercheChaine($A$2;"([0-9])+";1)+ChercheChaine($A$2;"([0-9])+";2)/24+ChercheChaine($A$2;"([0-9])+";3)/24/60+ChercheChaine($A$2;"([0-9])+";4)/24/60/60
2jj-hh-mm-ss.xlsm (14.75 Ko)

Hello Theze

In fine c'est peut-être ceci que tu souhaites ?

Tarnsformer 04 "jour(s)" 04 "heure(s)" 25 "minute(s) "30 "seconde(s)" par exemple et obtenir 4,184375

Avec utilisation de regexp

=ChercheChaine($A$2;"([0-9])+";1)+ChercheChaine($A$2;"([0-9])+";2)/24+ChercheChaine($A$2;"([0-9])+";3)/24/60+ChercheChaine($A$2;"([0-9])+";4)/24/60/60

Bonjour Steelson,

Oui c'est ça, en revanche la formule ne fonctionne que sur ton fichier et ne fonctionne pas si le contenu change (ex. quand la cellule contient que les jours et les heures ou les heures et minutes uniquement)

PS: pourrais-tu stp m'en dire plus sur cette fonction (nouvelle pour moi)

Merci

C'est une fonction-macro personnalisée à ajouter dans ton classeur.

J'ai ajouté Application.Volatile

Function ChercheChaine(chaine, pattern, indice)
Application.Volatile
  Set obj = CreateObject("vbscript.regexp")
  obj.pattern = pattern
  obj.Global = True
  Set a = obj.Execute(chaine)
  If indice <= a.Count Then ChercheChaine = a(indice - 1) Else ChercheChaine = ""
End Function
3jj-hh-mm-ss.xlsm (14.26 Ko)

C'est une fonction-macro personnalisée à ajouter dans ton classeur.

J'ai ajouté Application.Volatile

Function ChercheChaine(chaine, pattern, indice)
Application.Volatile
  Set obj = CreateObject("vbscript.regexp")
  obj.pattern = pattern
  obj.Global = True
  Set a = obj.Execute(chaine)
  If indice <= a.Count Then ChercheChaine = a(indice - 1) Else ChercheChaine = ""
End Function

Après activation de la macro la fonction marche sur le document, le hic c'est qu'elle ne prend pas en charge tous les cas de figures (Cf. PJ)

4jj-hh-mm-ss-1.xlsm (15.88 Ko)

ok

je m'y attendais un peu

je vais adapter la fonction ... wait some time please !

Dac

=SIERREUR(SUBSTITUE(ChercheChaine(A2;"([0-9])+ \""jo");" ""jo";"");0)
+SIERREUR(SUBSTITUE(ChercheChaine(A2;"([0-9])+ \""he");" ""he";"");0)/24
+SIERREUR(SUBSTITUE(ChercheChaine(A2;"([0-9])+ \""mi");" ""mi";"");0)/24/60
+SIERREUR(SUBSTITUE(ChercheChaine(A2;"([0-9])+ \""se");" ""se";"");0)/24/60/60

avec la fonction

Function ChercheChaine(chaine, pattern)
Application.Volatile
  Set obj = CreateObject("vbscript.regexp")
  obj.pattern = pattern
  obj.Global = True
  Set a = obj.Execute(chaine)
  If indice <= a.Count Then ChercheChaine = a(0) Else ChercheChaine = ""
End Function
10jj-hh-mm-ss-1.xlsm (14.90 Ko)

Bonjour Steelson,

Top!

Serait-il possible de l'adapter à un contenu de cellule sans les guillemets ("")?

Ex. 1 Jour(s) 4 Heure(s) 34 Min(s) au lieu de 1 "Jour(s)" 4 "Heure(s)" 34 "Min(s)"

Mes sincères remerciements

Et donc en majuscules aussi ! ?

si la valeur est en A2 =

=SIERREUR(SUPPRESPACE(SUBSTITUE(ChercheChaine(A2;"([0-9 ])+Jo");"Jo";""));0)
+SIERREUR(SUPPRESPACE(SUBSTITUE(ChercheChaine(A2;"([0-9 ])+He");"He";""));0)/24
+SIERREUR(SUPPRESPACE(SUBSTITUE(ChercheChaine(A2;"([0-9 ])+Mi");"Mi";""));0)/24/60
+SIERREUR(SUPPRESPACE(SUBSTITUE(ChercheChaine(A2;"([0-9 ])+Se");"Se";""));0)/24/60/60

S'il faut prévoir tous les cas de figure, avec et sans guillemets, avec et sans majuscules, alors il faut changer de fusil d'épaule et faire une fonction personnalisée.

Le test est concluant et s'adapte exactement à mon besoin,

Merci chef

Rechercher des sujets similaires à "mise conformite temps"