Macro excel, calcul sur hrs et minute

Aurélien -  
wilfried_42 Messages postés 912 Statut Contributeur -
Bonjour,
J'ai un problème avec un calcul de minutes en vb sous excel.
Je voudrais arrondir mes données à l'heure < ou > selon les minutes restantes mais vb fait le calcul par rapport à la valeur numérique et non avec celle heure/date que j'ai donner à mes cellules. y a t'il un moyen pour faire cette opération?
Merci pour la réponse
A voir également:

2 réponses

matthieu
 
Je te joins un petit programme vba que tu peux ajouter dans excel

Il crée 2 fonctions qui convertissent

du format dd.mmss en décimal fonction DEGDMSDEC

du format decimal en dd.mmss fonction DEGDECDMS

Function DEGDMSDEC(Entree As Double) As Double
Dim signe As Integer, degre As Integer, minute As Integer
Dim seconde As Double
If Entree > 0 Then
signe = 1
Else
signe = -1

End If
degre = Int(Abs(Entree))
minute = Int((Abs(Entree) - degre) * 100)
seconde = (Abs(Entree) - degre - minute / 100) * 10000
DEGDMSDEC = signe * (degre + minute / 60 + seconde / 3600)

End Function

Function DEGDECDMS(Entree As Double) As Double
Dim signe As Integer, degre As Integer, minute As Integer
Dim seconde As Double
If Entree > 0 Then
signe = 1
Else
signe = -1

End If
degre = Int(Abs(Entree))
minute = Int((Abs(Entree) - degre) * 60)
seconde = (Abs(Entree) - degre - minute / 60) * 3600
DEGDECDMS = signe * (degre + minute / 100 + seconde / 10000)

End Function
0
wilfried_42 Messages postés 912 Statut Contributeur 245
 
Bonjour à tous

en A1 tu as ton heure, ou date + heure, ca ne gene pas

Sub arrondi_heure()
    Dim a As Date
    a = Range("A1")
    Range("A2") = Round(a * 24, 0) / 24
End Sub


en b2, tu recuperes ton heure arrondie

Les heures sont enregistrées dans excel en 1/24ème de jour, une multiplication par 24 la transforme en décimale, ensuite faire l'arrondi et diviser par 24 pour retomber sur un format horaire

en formule : en B2
=Arrondi(A1*24;0)/24
-1