Formule heure, jour, mois

Bonjour,

je cherche désespérément les formules qui pourraient me permettre de remplir un fichier excel :

A4 B4 D4 F4 G4

DU AU HEURE JOUR MOIS

jeudi 31 janvier 2019 lundi 4 mars 2019 158:00:00 32 1

je cherche à calculer mes heures, mes jours et mes mois s'il y en a.

Merci pour votre aide à la formule, j'ai beau regarder les forums, je ne trouve pas une formule qui fonctionne, il y a les week end qui sont à retirer....

Merci

Bonjour,

Tu veux quoi, comme réponse ?

1 mois 15 jours 10h 45 mn ?

Et on trouve ça sur quel fichier .....?

Crdlmt

Bonjour,

Comme il n'y a pas de fichier exemple, voici une fonction perso à mettre dans un module standard :

Function FormatTempsAnnee(Valeur As Single) As String

    Dim T
    Dim Annee As Integer
    Dim Mois As Integer
    Dim Jour As Integer
    Dim Heure As Integer
    Dim Minute As Integer
    Dim Seconde As Integer
    Dim NJAnnee As Single
    Dim NJMois As Single

    NJAnnee = 365.25
    NJMois = NJAnnee / 12

    Annee = Int(Valeur / NJAnnee)
    Mois = Int(Valeur / NJMois) - Annee * 12
    Jour = Int(Valeur) - Mois * NJMois - Annee * NJAnnee

    T = Split(Format(Valeur - Int(Valeur), "hh:mm:ss"), ":")
    Heure = T(0)
    Minute = T(1)
    Seconde = T(2)

    FormatTempsAnnee = IIf(Annee > 0, Annee & IIf(Annee > 1, " années ", " année "), "") & _
                       IIf(Mois > 0, Mois & " mois ", "") & _
                       IIf(Jour > 0, Jour & IIf(Jour > 1, " jours ", " jour "), "") & _
                       IIf(Heure > 0, Heure & IIf(Heure > 1, " heures ", " heure "), "") & _
                       IIf(Minute > 0, Minute & IIf(Minute > 1, " minutes ", " minute "), "") & _
                       IIf(Seconde > 0, Seconde & IIf(Seconde > 1, " secondes ", " seconde "), "")

End Function

La date de début en cellule A2 par exemple : 31/01/2019 10:54:26

La date de fin en cellule B2 : 04/03/2019 13:23:12

avec comme format personnalisé si nécessaire pour les deux dates : jjjj jj mmmm aaaa hh:mm:ss

La différence de date en cellule C2 : =B2-A2

Et enfin, la formule qui appelle la fonction perso en D2 : =FormatTempsAnnee(C2)

Ce qui donne comme résultat : 1 mois 2 jours 2 heures 28 minutes 46 secondes

Maintenant, si tu ne veux pas de fonction perso, voici une formule Excel assez longue :

=ENT(C2) & " jour(s) "&ENT((C2-ENT(C2))*24) &" heure(s) "&ENT(((C2-ENT(C2))*24-ENT((C2-ENT(C2))*24))*60)&" minute(s) "&ENT(((((C2-ENT(C2))*24-ENT((C2-ENT(C2))*24))*60)-ENT((((C2-ENT(C2))*24-ENT(ENT((C2-ENT(C2))*24)))*60)))*60)&" seconde(s)"

Voici un classeur exemple :

Petite précision concernant la fonction perso, comme le calcul des mois et années est calendaire, j'ai utilisé dans la fonction la valeur pour l'année de 365,25, moyenne de (365 x 3 + 366) / 4 et pour le mois, 365,25 / 12 !

bonjour, merci à tous,

ci-joint mon tableau merci

Les heures je suis même pas sûre...

10exemple.xlsx (14.98 Ko)

Bonjour,

Comme il n'y a pas de fichier exemple, voici une fonction perso à mettre dans un module standard :

Function FormatTempsAnnee(Valeur As Single) As String

    Dim T
    Dim Annee As Integer
    Dim Mois As Integer
    Dim Jour As Integer
    Dim Heure As Integer
    Dim Minute As Integer
    Dim Seconde As Integer
    Dim NJAnnee As Single
    Dim NJMois As Single

    NJAnnee = 365.25
    NJMois = NJAnnee / 12

    Annee = Int(Valeur / NJAnnee)
    Mois = Int(Valeur / NJMois) - Annee * 12
    Jour = Int(Valeur) - Mois * NJMois - Annee * NJAnnee

    T = Split(Format(Valeur - Int(Valeur), "hh:mm:ss"), ":")
    Heure = T(0)
    Minute = T(1)
    Seconde = T(2)

    FormatTempsAnnee = IIf(Annee > 0, Annee & IIf(Annee > 1, " années ", " année "), "") & _
                       IIf(Mois > 0, Mois & " mois ", "") & _
                       IIf(Jour > 0, Jour & IIf(Jour > 1, " jours ", " jour "), "") & _
                       IIf(Heure > 0, Heure & IIf(Heure > 1, " heures ", " heure "), "") & _
                       IIf(Minute > 0, Minute & IIf(Minute > 1, " minutes ", " minute "), "") & _
                       IIf(Seconde > 0, Seconde & IIf(Seconde > 1, " secondes ", " seconde "), "")

End Function

La date de début en cellule A2 par exemple : 31/01/2019 10:54:26

La date de fin en cellule B2 : 04/03/2019 13:23:12

avec comme format personnalisé si nécessaire pour les deux dates : jjjj jj mmmm aaaa hh:mm:ss

La différence de date en cellule C2 : =B2-A2

Et enfin, la formule qui appelle la fonction perso en D2 : =FormatTempsAnnee(C2)

Ce qui donne comme résultat : 1 mois 2 jours 2 heures 28 minutes 46 secondes

Maintenant, si tu ne veux pas de fonction perso, voici une formule Excel assez longue :

=ENT(C2) & " jour(s) "&ENT((C2-ENT(C2))*24) &" heure(s) "&ENT(((C2-ENT(C2))*24-ENT((C2-ENT(C2))*24))*60)&" minute(s) "&ENT(((((C2-ENT(C2))*24-ENT((C2-ENT(C2))*24))*60)-ENT((((C2-ENT(C2))*24-ENT(ENT((C2-ENT(C2))*24)))*60)))*60)&" seconde(s)"

J'ai pas tout compris

Bonjour,

Un exemple.

Cdlt.

3exemple.xlsx (15.12 Ko)

Bonjour,

Cela ne fonctionne pas, le nombre de jour doit être calculé par rapport aux heures que j'ai rentrées, pas l'inverse merci

Bonjour,

Un exemple.

Cdlt.

exemple.xlsx

Merci, avec mon tableau c'est plus simple pour m'aider ?

Voici un classeur exemple :

Dates et heures.xlsm

Petite précision concernant la fonction perso, comme le calcul des mois et années est calendaire, j'ai utilisé dans la fonction la valeur pour l'année de 365,25, moyenne de (365 x 3 + 366) / 4 et pour le mois, 365,25 / 12 !

Bonjour,

Voici le classeur en retour avec la fonction perso et la formule Excel :

J'ai pas tout compris

Et bien, dans le calcul de durées, il y a pour ainsi dire 5 valeurs invariables, la semaine qui comporte 7 jours, le jour qui comporte 24 heures, l'heure qui comporte 60 minutes et la minute qui comporte 60 secondes.

En ce qui concerne l'année et le mois, leurs valeurs sont variables, 365 et 366 jours pour l'année, 28, 29, 30, 31 jours pour le mois ce qui donne une imprécision due à l'interprétation qu'on en fait. C'est pour cette raison que je suis parti sur une moyenne de 4 ans et c'est ce qui donne 365,25 jours/an et 30,4375 jours/mois. J'ai fais cette fonction suite à une demande sur un autre forum il y a quelques mois mais c'était pour un intervalle de temps, dans ton cas, ayant des repères temporels (date de début et de fin) on pourrait concevoir une fonction précise par rapport à ces deux dates, le seul problème serait les heures qui doivent être ajoutées, donc dans quelle proportion pour ces deux dates, moitié-moité, toute pour la date de début, pour la date de fin ?

Par exemple, pour les dates 01/01/2019 et 01/02/2019 ma fonction retourne 1 mois et 28 jours mais en réalité, ça fait 2 mois, 1 mois de 31 jours et 1 mois de 28 jours !

Coucou, super ton explication merci

les horaires sont des heures travaillées, mais, j'ai fait du 7h, 5h, 2h, 8h, 10h, bref un tat de complet, d'heures sup, et de partiel... ça va pas être simple je pense

coucou,

ça ne me mets pas le bon nombre de jour

par exemple la dernière mission en date j'ai fait 22 jours en enlevant les week end...

Bonjour,

Si tu mets un intervalle de temps (date de début et date de fin) mais que tu retranches les Weekends et jours fériés, il ne peut y avoir une correspondance !

Si on prend par exemple du 30/04/2019 au 31/05/2019, la fonction donne 1 mois et 1 jour mais si tu enlèves les 3 jours fériés et les 8 jours de Weekends c'est sûr, ça ne collera pas du tout !

Donnes un cas précis pour voir ce qu'il est possible de faire

Bonjour,

Une proposition à étudier.

Cdlt.

7exemple.xlsx (25.28 Ko)

Joli joli joli !!!

tu veux bien m'expliques tes calculs ?

et pourquoi j'ai une ligne avec -1 jour ?

Merci

Bonjour,

Une proposition à étudier.

Cdlt.

exemple.xlsx

Bonjour,

je comprend oui,

Merci

Bonjour,

Si tu mets un intervalle de temps (date de début et date de fin) mais que tu retranches les Weekends et jours fériés, il ne peut y avoir une correspondance !

Si on prend par exemple du 30/04/2019 au 31/05/2019, la fonction donne 1 mois et 1 jour mais si tu enlèves les 3 jours fériés et les 8 jours de Weekends c'est sûr, ça ne collera pas du tout !

Donnes un cas précis pour voir ce qu'il est possible de faire

Joli joli joli !!!

et pourquoi j'ai une ligne avec -1 jour ?

et tu saurais me faire une formule qui calcul le nombre d'année cumulée de travail ? c'est à dire on prend tous les mois, heures et jours et on transforme en année ?

tu veux bien m'expliques tes calculs ? que je puisse apprendre

Merci merci merci

Bonjour,

Une proposition à étudier.

Cdlt.

exemple.xlsx

Re,

Pour les explications, regarde les hypothèses retenues et l'aide Excel pour les fonctions utilisées.

Il n'y a pas de valeurs négatives, hormis pour le calcul des jours avec une date de fin inférieure à la date de début !...

Sinon, les résultats sont-ils ceux attendus ?

A te relire.

Cdlt.

Re,

Pour les explications, regarde les hypothèses retenues et l'aide Excel pour les fonctions utilisées.

Il n'y a pas de valeurs négatives, hormis pour le calcul des jours avec une date de fin inférieure à la date de début !...

Sinon, les résultats sont-ils ceux attendus ?

A te relire.

Cdlt.

Dans les jours j'ai un -1, mais je ne comprends pas pourquoi,

Il a a des fois où les mois ne correspondent pas, il marque 1 mois alors que j'en ai fait 4... je m'arrache les cheveux avec ces calculs :'(

je regarde pour le reste

merci

Re,

Pour commencer, il y a une petite coquille.

Sans les jours fériés, on a en moyenne 261 jours ouvrés dans l'année.

Modifier en conséquence :

Moyenne jours ouvrés annuel 261 au lieu de 252 (soit 21,75 jours par mois, au lieu de 21 jours)

Peux-tu nous dire si on doit comptabiliser ou non les jours fériés ?

Sinon pour vérifier les calculs.

Si on on prend la 1ère. ligne, on a :

DU AU HEURE

jeudi 31 janvier 2019 lundi 4 mars 2019 158:00:00

158 = 1 mois * 21 jours * 7 heures + 1 jour * 7 heures + 4 heures = 158

Rechercher des sujets similaires à "formule heure jour mois"