Différence variable temps VBA -Excel[RESOLU]

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
Il ne me manque plus que ce .."Détail" pour que tout fonctionne , et n'arrive pas à trouver ?
Dans la Sub_change à la fin de la boucle While je compare 2 temps et même s'ils sont
égaux .. ils ne le sont pas !!!! ( j'ai ajouté un Msgbox pour montrer les 2 valeurs égales)
Pour le test du cas précis : juste mettre 12:00 en heure de début en ligne 26 : il est prévu d'afficher
14/03/18 et fin à 21:00 ( fermeture) , vous verrez que cela fait 16/03 ( le 15 est défini Férié donc je le saute)
à 05:00 ( ouverture) . La tache doit se terminer à 21:00 donc c'est possible , inutile de passer au sur- lendemain à 05:00
Ce que je pige pas c'est Pourquoi TR = cells(4,"D") mais que le IF <= ne le prenne pas comme tel ???

PS : si vous arrêtez la Sub en cours , avant d'entrer des données en feuille , il faut executer la Sub Valid
pour event= false et remettre à true
 

Pièces jointes

  • Test_temps.xlsm
    1.5 MB · Affichages: 31

Bebere

XLDnaute Barbatruc
bonjour

hervé
içi c'est bon(excel2010)
T = Int(Target.Row).Target.Row est un entier(long)
à tester Dim tr As Date 'Double
si h26=12:00, i26=14-03-18, j26=21:00
est ce bon
Code:
MsgBox "val tr " & CDate(tr) & Chr(13) & "Tjour " & CDate(Cells(4, "D"))
 

herve62

XLDnaute Barbatruc
Supporter XLD
bonsoir
merci bebere , pour répondre vite fait ( juste sortie hosto entré hier : bras cassé coude fracturé....ouf le gauche:); pas évident
d'écrire
T n'a rien à voir ??? c'est la ligne
sinon j'ai mis tr variant double date : rien à faire le msgbox DIT BIEn egal, mais si tu passes en pas à pas le If
est sauté les 2 16:00 ne sont pas perçu idem ??
donc tu as testé dans mon pg et OK ?? pas ici
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Bonjour,

ce n'est pas dû à ton fichier, c'est général et dû aux conversions décimal-binaires qui ne tombent pas toujours juste.
Tu lis 16:00 mais si c'est issu d'une opération la valeur réelle est 16:00 + 0.0000000000001 par exemple.
Tu ne le vois pas mais c'est suffisant pour que le test soit négatif.
eric
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
je tourne bourrique !!! avec le cas t=37h début le 07/03 à 12h je dois finir le Ve 09/03 à 17h ( heure de ferm.) et il passe
à lu 21h ??
c'est au niveau : "déduction de Jour entier à 12:00 si Vendredi" , je mets un Msgbox on voit les 2 0.5 mais même avec le round
le if > prend ??
 

Pièces jointes

  • Test_temps.xlsm
    1.5 MB · Affichages: 18

eriiic

XLDnaute Barbatruc
Bonjour,

Comme tu n'expliques pas l'utilisation, le fonctionnement prévu et le pourquoi on ne va pas aller bien loin.
Je pars du principe que le demandeur doit être capable d'expliquer son besoin en détail, sans qu'on passe 1/2h à essayer de deviner (mal) à partir d'un code manifestement erroné.
c'est au niveau : "déduction de Jour entier à 12:00 si Vendredi"
met un Stop au début de ta macro et en pas à pas (F8) tu verras que tu n'y passes pas (testé en revalidant tes saisies).
Contrôle les valeurs de tes variables importantes au fur et à mesure pour déboguer.
eric
 

herve62

XLDnaute Barbatruc
Supporter XLD
Simple : une tache dure 37h elle commence à hh, Quand doit-elle se terminer ? avec horaires : Lu à Je :5h -21h
Ve : 5h 17h
tu verras que tu n'y passes pas (testé en revalidant tes saisies).
Désolé mais l'image prouve le contraire : tr=cells(5,"d")=0.5 !!!
Les points d'arrêt , pas à pas, contrôle variable il y a belle lurette que j'utilise toujours ça
à partir d'un code manifestement erroné.
? tout le reste fonctionne bien ( ce code est une reprise qui ne fonctionnait qu'a 50%)
Et maintenant TOUT est ok ; je continuais de chercher ; finalement j'ai fait DIM tr as Single ( plus besoin de round)
l'ex donne : gamme=37:00 ; début 07/03/18 à 12:00 et donc je finis le 09/03/18 (Ve) à 17:00 ce qui est correct
 

Pièces jointes

  • If.jpg
    If.jpg
    46.3 KB · Affichages: 19

Discussions similaires

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 154
dernier inscrit
jefferson6488