Conversion de valeurs numériques en temps (Microsoft Excel)
Sam a beaucoup de feuilles de calcul qui contiennent des heures. Le problème est que les heures sont au format « 1300 » au lieu du format « 13:00 ». Ainsi, Excel les considère comme des valeurs numériques régulières au lieu de les reconnaître comme des heures. Sam veut qu’ils soient convertis en valeurs de temps réelles.
Vous pouvez aborder cette tâche de plusieurs manières. Une façon est d’utiliser la fonction TIME pour convertir la valeur en temps, comme indiqué ici:
=TIME(LEFT(A1,2),RIGHT(A1,2),)
Cette formule suppose que l’heure de la cellule A1 contiendra toujours quatre chiffres. Si ce n’est pas le cas (par exemple, il peut s’agir de 427 au lieu de 0427), alors la formule doit être légèrement modifiée:
=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),)
La formule extrait essentiellement le chiffre le plus à gauche (ou les chiffres) et les utilise pour l’argument heures de la fonction TIME, puis utilise les deux chiffres les plus à droite pour l’argument minutes. TIME renvoie une valeur d’heure réelle, formatée comme telle dans la cellule.
Une approche formule similaire peut être adoptée en utilisant la fonction TIMEVALUE:
=TIMEVALUE(REPLACE(A1,LEN(A1)-1,0,":"))
Cette formule utilise REPLACE pour insérer un deux-points au bon endroit, puis TIMEVALUE convertit le résultat en une valeur de temps. Vous devrez formater la cellule résultante pour qu’elle affiche l’heure comme vous le souhaitez.
Une autre variante de l’approche par formule consiste à utiliser la fonction TEXT, de cette manière:
=--TEXT(A1,"00\:00")
Cela renvoie une valeur d’heure réelle, que vous devrez ensuite formater correctement pour être affichée sous forme d’heure.
Une autre approche consiste simplement à faire le calcul sur l’heure d’origine pour la convertir en une valeur d’heure utilisée par Excel. C’est facile une fois que vous réalisez que les valeurs de temps ne sont rien de plus qu’une partie fractionnaire d’une journée. Ainsi, une valeur de temps est un nombre compris entre 0 et 1, obtenu en divisant les heures par 24 (les heures d’une journée) et les minutes par 1440 (les minutes d’une journée). Voici une formule qui fait cela:
=INT(A1/100)/24+MOD(A1,100)/1440
Ceci détermine la partie heure de la valeur d’origine, qui est ensuite divisée par 24. La partie minute (la partie restante de la valeur d’origine) est ensuite divisée par 1440 et ajoutée à la première partie. Vous pouvez ensuite formater le résultat sous forme d’heure et cela fonctionne parfaitement.
Toutes les formules décrites jusqu’à présent utilisent une nouvelle colonne pour effectuer les conversions. C’est pratique, mais vous souhaiterez peut-être convertir la valeur sur place, sans avoir besoin d’une formule. C’est là qu’une macro peut être utile. La macro suivante convertira les cellules que vous avez sélectionnées en valeurs de temps et formatera les cellules de manière appropriée:
Sub NumberToTime() Dim rCell As Range Dim iHours As Integer Dim iMins As Integer For Each rCell In Selection If IsNumeric(rCell.Value) And Len(rCell.Value) > 0 Then iHours = rCell.Value \ 100 iMins = rCell.Value Mod 100 rCell.Value = (iHours + iMins / 60) / 24 rCell.NumberFormat = "h:mm AM/PM" End If Next End Sub
La macro utilise une division entière pour déterminer le nombre d’heures (iHours) et remplit le reste en iMins. Ceci est ensuite ajusté en une valeur d’heure et replacé dans la cellule, qui est ensuite formatée en tant qu’heure. Vous pouvez modifier le format de cellule, si vous le souhaitez, à l’un des autres formats d’heure pris en charge par Excel.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (10101) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.
Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:
link: / excel-Converting_Numeric_Values_to_Times [Conversion des valeurs numériques en temps]
.