Voici mon problème que je dois résoudre sous Excel: j’ai un nombre d’heure (par exemple 10472) que je veux convertir de manière à obtenir le résultat sous la forme suivante :
en basic façon openoffice je le verrais comme ça:
=CONVERTIRFONCTION(10472)
avec comme code pas propre du tout:
function convertirfonction(val as integer ) as string
’ Hypothèse simplificatrice parce que je suis une feignasse trop crevé pour faire mieux le dimanche:
’ tous les moins font 30 jours
dim nbannee as double
dim nbmois as double
dim nbjours as double
dim nbheures as double
if val <> 0 then
nbannee = int(val/24/365)
nbmois = int((val/24-nbannee*365)/30)
nbjours = int(val/24 - nbannee * 365 - nbmois *30)
nbheures = val - nbannee * 365 * 24 - nbmois *30 * 24 - nbjours *24
convertirfonction = val &" heures correspond à: " & nbannee & " ans “& nbmois & " mois” & nbjours & " jours " & nbheures & " heures"
end if
end function
ça devrait fonctionner aussi sous excel/vba mais sinon reprend la logique et fais le avec des formules (utilise notamment la fonction tronque() )
Merci pour ta réponse. Mais je dois absolument me baser sur 365 jours (donc pas tous les mois de 30 jours) et en plus je suis trop novice avec EXCEL pour m’en sortir.
Au fait, on n’est pas dimanche
C’est pour le travail de ma femme : elle doit déterminer des périodes de travail entre 2 dates (ça, je sais faire) puis calculer une moyenne (en heures) et enfin présenter ça sous le format année, mois, jours et heures.
Mais ne te casse pas la tête. C’est le WE
dans ce cas là, le problème va être que tu vas devoir gérer la taille des mois, éventuellement les années bissextiles et tout le toutim.
c’est faisable mais ça complexifie au possible, d’autant plus si tu prends des formules excel.