Saisie ou importation d’heures sans deux points (Microsoft Excel)
Lorsque vous entrez une heure dans une cellule, Excel clés sur la présence des deux-points entre les parties heure et minute de l’heure. Cependant, en raison de la position des deux points sur le clavier, la saisie de deux points pour chaque valeur de temps que vous entrez peut vous ralentir, en particulier si vous avez un certain nombre de valeurs de temps à saisir.
Pour cette raison, vous pouvez vous demander s’il existe un moyen d’ignorer les deux points et de les faire entrer automatiquement ou de les saisir tous en même temps.
Les saisir automatiquement demande un peu plus de travail, nécessitant l’utilisation d’une macro, et sera couvert sous peu. La saisie des deux points en une seule fois peut être effectuée avec une formule, comme ci-dessous:
=TIMEVALUE(REPLACE(A1,3,0,":"))
Cette formule suppose que la valeur d’heure (sans deux-points) se trouve dans la cellule A1 et qu’elle est composée de quatre chiffres. Ainsi, si la cellule A1 contient une valeur telle que 1422, la formule renvoie 14:22 en tant que valeur d’heure réelle. (Vous devrez peut-être formater la cellule en tant que valeur de temps.)
Si votre cellule d’entrée d’origine peut contenir une heure qui n’utilise que trois chiffres, comme 813 au lieu de 0813, vous devez utiliser une formule légèrement différente:
=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),0)
Si vous préférez que l’insertion des deux points se fasse automatiquement, vous pouvez utiliser une macro. Vous pouvez créer une macro qui examinera une plage de cellules dans laquelle vous prévoyez d’ajouter des dates à la feuille de calcul, puis insérez les deux points dans l’entrée. Cela se fait en créant une macro qui est déclenchée par l’événement SheetChange. La macro suivante en est une:
Private Sub Workbook_SheetChange(ByVal Sh As Object, _ ByVal Target As Excel.Range) Dim TimeStr As String On Error GoTo EndMacro If Application.Intersect(Target, Range("C7:D15")) Is Nothing Then Exit Sub End If If Target.Cells.Count > 1 Then Exit Sub End If If Target.Value = "" Then Exit Sub End If Application.EnableEvents = False With Target If .HasFormula = False Then Select Case Len(.Value) Case 1 ' e.g., 1 = 00:01 AM TimeStr = "00:0" & .Value Case 2 ' e.g., 12 = 00:12 AM TimeStr = "00:" & .Value Case 3 ' e.g., 735 = 7:35 AM TimeStr = Left(.Value, 1) & ":" & _ Right(.Value, 2) Case 4 ' e.g., 1234 = 12:34 TimeStr = Left(.Value, 2) & ":" & _ Right(.Value, 2) Case Else Err.Raise 0 End Select .Value = TimeValue(TimeStr) End If End With Application.EnableEvents = True Exit Sub EndMacro: MsgBox "You did not enter a valid time" Application.EnableEvents = True ActiveCell.Offset(-1, 0).Select End Sub
La première chose que fait la macro est de vérifier si les données qui viennent d’être saisies se situent dans la plage C7: D15. Si ce n’était pas le cas, la macro se ferme. Il vérifie également qu’il n’y a qu’une seule cellule sélectionnée et que la cellule n’est pas vide. Si tous ces critères sont remplis, la macro vérifie la longueur de la valeur dans la cellule et la complète avec des zéros non significatifs, si nécessaire. Cette macro est basée sur une macro trouvée sur le site de Chip Pearson, ici:
http://cpearson.com/excel/DateTimeEntry.htm
_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 (2412) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Entering_or_Importing_Times_without_Colons [Saisie ou importation de temps sans virgule]
.