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

2 réponses

  1. 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
  2. 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