Cumul de minute en macro

gravel

XLDnaute Nouveau
Bonjour tlm,
Je souhaiterai faire afficher une différence entre deux valeurs "time" en minutes ex:
1:43 - 22:00 me donne le résultat 20:16
alors que je voudrais 223 (mn).
ma fonction dans mon code est :
Code:
lbx_j1.List(lbx_j1.ListCount - 1, 2) = [B]Format((Time - Liste(i, 7)), "h:mm")[/B]
J'ai laisser h sinon si je ne met que "mm" l'affichage n'est pas bon.
Merci d'avance
A+
 

ROGER2327

XLDnaute Barbatruc
Re : Cumul de minute en macro

Bonjour gravel,
Je ne comprends pas votre calcul :
si t0 = 1 h 43 min et t1 = 22 h 00 min, t1 - t0 = 1217 min ;
si t0 = 1 min 43 s et t1 = 22 min 00 s, t1 - t0 = 20 min 28 s ;
si t0 = 1 min 43 s et t1 = 22 h 00 min, t1 - t0 = 1318 min 28 s ;
si t0 = 1 h 43 min et t1 = 22 min 00 s, t1 - t0 = -81 min 00 s.​
Comment obtenez-vous 223 min ou 20 h 16 min ou 20 min 16 s ?​
À bientôt,
ROGER2327
 

ROGER2327

XLDnaute Barbatruc
Re : Cumul de minute en macro

Bonjour à tous
Entièrement d'accord sur le principe, time * 1440 donne un temps en minutes. Mais je ne vois toujours pas comment gravel obtiendra le résultat souhaité à partir des renseignements donnés.​
À suivre...

ROGER2327
 

gravel

XLDnaute Nouveau
Re : Cumul de minute en macro

Je n'ai pas le temps d'essayer ta solution avant demain JB.
pour Roger, le problème c'est que time me renvoi un nombre <1 correspondant à une journée.
passé minuit la différence entre mon t0 de 1h43 (couché tard forcément) et mon t1 de 22:00 (22h) devient la différence entre t1 et t0 (t1-t0) et non plus t0 et t1 (t0-t1).
A+
 

Pierrot93

XLDnaute Barbatruc
Re : Cumul de minute en macro

Bonjour Gravel, Roger, jb

regarde le code ci-dessous, si cela peut t'aider, mais comme Roger je m'interroge sur le résultat que tu obtiens dans l'exemple donné...

Code:
MsgBox Abs((CDate(TextBox1.Value) - CDate(TextBox2.Value)) * 1440)

bonne journée
@+
 

ROGER2327

XLDnaute Barbatruc
Re : Cumul de minute en macro

Bonjour à tous,
Si j'ai bien compris, mon cher gravel, il s'agit de calculer la différence en minutes entre deux dates. Par exemple, entre 27/12/2008 01:43 et 26/12/2008 22:00. Cela n'est pas possible avec la fonction time qui est périodique de période 1 (jour). Votre solution se trouve dans la fonction Now
Essayez le code :
Code:
Option Explicit

Sub test()
Dim x, y
    x = Now() [COLOR="DarkGreen"]' date courante[/COLOR]
    y = x - 223 / 1440 [COLOR="DarkGreen"]' date courante retardée de 223 minutes[/COLOR]
    MsgBox x & " - " & y & " = " & Round((x - y) * 1440) & " min"
End Sub
à n'importe quel moment de la journée pour vous en convaincre : il renverra systématiquement la réponse 223 min.​
Nous avons ici un exemple montrant l'intérêt qu'il y a à prendre le temps de demander exactement ce qu'on veut, plutôt qu'à se contenter d'à peu près. Tous le monde y gagnerait : ceux-là qui cherchent à répondre perdraient moins de temps, ceux-ci qui demandent attendraient les réponses moins longtemps... ...et tout irait pour le mieux dans le meilleur des mondes.​
Bonne journée,
ROGER2327
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
2 K
Réponses
0
Affichages
1 K

Statistiques des forums

Discussions
312 755
Messages
2 091 726
Membres
105 058
dernier inscrit
axcelle