Bonjour,
J'ai écris une petite fonction toute simple avec l'editeur VB d'excel mais quand je l'appel pour certaines valeurs j'ai une erreur #Valeur! que je n'arrive pas à comprendre et si je diminue juste le nombre du 1er champ en dessous de 10, plus erreur.
Mieux qu'un long discours le code :
dans cellule excel :
Retourne : 9:41:12.300000 (ce qui me convient)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 =secToTimestamp(8;39;32.1;3700.2)
Retourne: #VALEUR! alors que l'on a juste ajouté fait 8+1=9
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 =secToTimestamp(9;39;32.1;3700.2)
Toutes les valeurs supérieures à 8 pour le champ de heures retournent ce code d'erreur.
Code de la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 'Conversion du nbr secondes en heures minutes secondes avec ajout d'une heure de départ ' Exemple pour 14h21min31.2658s et 369.253698 ' StartH =14 StartM= 21 StartS= 31.2658 secNbr =369.253698 ' Resultat 14:27:40.519498 Function secToTimestamp(StartH As Integer, StartM As Integer, StartS As Double, secNbr As Double) As String Dim hours As Integer Dim hours_res As Integer Dim minutes As Integer Dim sec As Double secNbr = secNbr + StartS + StartM * 60 + StartH * 3600 hours = secNbr \ 3600 minutes = (secNbr - hours * 3600) \ 60 sec = secNbr - (60 * minutes) - (3600 * hours) secToTimestamp = hours & ":" & minutes & ":" & FormatNumber(sec, 6, vbFalse, vbFalse, vbFalse) End Function
Partager