J'essaie d'afficher des millisecondes dans une macro Excel. J'ai une colonne d'entiers qui sont des horodatages en millisecondes (28095200 correspond à 7: 48: 15,200 du matin) et je veux créer une nouvelle colonne à côté de celle-ci, qui conserve une moyenne et affiche l'heure dans un hh:mm:ss.000
format.
Dim Cel As Range
Set Cel = Range("B1")
temp = Application.Average(Range("A1:A2")) / 1000
ms = Round(temp - Int(temp), 2) * 1000
Cel.Value = Strings.Format((temp / 60 / 60 / 24), "hh:mm:ss") _
& "." & Strings.Format(ms, "#000")
Cela affiche uniquement "mm: ss.0" dans la cellule. Pourtant, lorsque je clique sur la cellule, il affiche "hh: mm: ss" dans la barre de formule. Pourquoi manque-t-il des heures? Comment puis-je afficher les heures, les minutes, les secondes et les millisecondes?
Cliquez avec le bouton droit sur Cellule B1
et choisissez Formater les cellules. Dans Custom, inscrivez ce qui suit dans la zone de texte intitulée Type:
[h]:mm:ss.000
Pour définir cela en code, vous pouvez faire quelque chose comme:
Range("A1").NumberFormat = "[h]:mm:ss.000"
Cela devrait vous donner ce que vous cherchez.
REMARQUE: les champs spécialement mis en forme nécessitent souvent que la largeur de la colonne soit suffisamment large pour tout le contenu du texte mis en forme. Sinon, le texte s'affichera sous la forme ######
.
J'ai découvert dans Excel 2007 que, si les résultats sont une table issue d'une requête intégrée, le fichier ss.000 ne fonctionne pas. Je peux coller les résultats de la requête (à partir de SQL Server Management Studio) et formater parfaitement le temps. Mais lorsque j'intègre la requête en tant que connexion de données dans Excel, le format indique toujours .000 en millisecondes.
Je l'ai fait dans Excel 2000.
Cette déclaration devrait être: ms = Round(temp - Int(temp), 3) * 1000
Vous devez créer un format personnalisé pour la cellule de résultat de [h]:mm:ss.000