arrondir un temps aux 30 secondes supérieures en VBA

gosselien

XLDnaute Barbatruc
Hello,

j'ai toujours eu un peu de mal avec les jours/heures/minutes/secondes surtout en VBA
dans une liste; je voudrais arrondir à la minute supérieure et la minute 30
donc:
08:15:33 devient 08:16:00
07:16:25 devient 07:16:30
07:19:05 devient 07:19:30
07:58:45 devient 07:59:00

Je retourne le truc depuis un moment et rien de probant

Merci de votre aide
 

Modeste geedee

XLDnaute Barbatruc
Re : arrondir un temps aux 30 secondes supérieures en VBA

Salut Patrick©

=ARRONDI.AU.MULTIPLE(A1;1/2880)
ou
=ARRONDI.AU.MULTIPLE(A1;TEMPSVAL("0:00:30"))

ou pour arrondi supérieur
tout simplement :
=(1+ENT(A1*2880))/2880

soit en VBA :
VB:
function arrondi30s(target as double) as double
dim resultat resultat as double 
resultat=(1+int(target*2880))/2880
end function
 
Dernière édition:

gosselien

XLDnaute Barbatruc
Re : arrondir un temps aux 30 secondes supérieures en VBA

Bonsoir Modeste, toto,ivan,

Merci , j'avais essayé tout ça (=PLAFOND(B2;"00:00:30") mais en vba comment traduire:

05:15:37 qui donne : 0.219178240740741 dans ma variable mais je ne peux pas mettre "00:00:30" en vba et c'est là que je bute
pour avoir ensuite 05:16:00 ?
 

gosselien

XLDnaute Barbatruc
Re : arrondir un temps aux 30 secondes supérieures en VBA

grrrr....
pour le début ça va mais à présent:(je patauge VRAIMENT avec les dates et les heures) :( :(

comment tester , pour ne pas en tenir compte, une cellule qui est < à 00:06:30 et > 23:30:00 ?
sorry mais ce n'est pas ma tasse de thé :)
 

tototiti2008

XLDnaute Barbatruc
Re : arrondir un temps aux 30 secondes supérieures en VBA

Re,

Modeste GD et moi venons de te fournir 2 exemples avec TimeValue

If Range("A1").value < timevalue("06:30:00") or Range("A1").value> timevalue("23:30:00") then

Dans la mesure où la cellule ne contient qu'une heure, pas une date et heure...