Macro excel, calcul sur hrs et minute
Aurélien
-
wilfried_42 Messages postés 912 Statut Contributeur -
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
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:
- Macro excel, calcul sur hrs et minute
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Comment calculer la moyenne sur excel - Guide
- Liste déroulante excel - Guide
- Si et ou excel - Guide
2 réponses
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
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
Bonjour à tous
en A1 tu as ton heure, ou date + heure, ca ne gene pas
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
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