Calendrier automatique

Phoenix23

XLDnaute Occasionnel
Bonsoir à toutes et tous,
Mon problème: Un calendrier automatique qui calcul le temps passé depuis la date de naissance, j'ai trouvé, modifié une formule trouvée sur internet pour les années, mois, jours passés, mais je bloque pour les heures, minutes secondes.
D'avance merci pour votre aide
Cordialement
 

Pièces jointes

  • Classeur2.xlsx
    10.2 KB · Affichages: 153
  • Classeur2.xlsx
    10.2 KB · Affichages: 151
  • Classeur2.xlsx
    10.2 KB · Affichages: 161

Lone-wolf

XLDnaute Barbatruc
Re : Calendrier automatique

Re Modeste geedee,

logique que se soit "01/02/2014"-"01/01/2014". Or, comme toi tu le dis, je devrais avoir un différence d'un jour ou deux entre les deux classeurs. Mais, bizarrement que ce soit par formule ou par (macro), j'obtient le même résultat.

Si tu as regardé le dernier classeur, je part de mon année de naissance jusqu'en 2013, pour connaître les années bissextiles. Je déduis les jours (du 01.01 au 10.09.1962) et je rajoute les 23 jours de ce mois.


A+ :cool:
 

Roland_M

XLDnaute Barbatruc
Re : Calendrier automatique

re

puisque ça intéresse, allons-y ...
j'ai modifié ma macro !

les avis sont bien venus !?

surtout Mr ROGER2327 qui a conçu ce classeur !
 

Pièces jointes

  • calendrier-automatique-age-2R-.xlsm
    27.9 KB · Affichages: 54

Lone-wolf

XLDnaute Barbatruc
Re : Calendrier automatique

Bonjour à tous,

et oui! Je réouvre la débat.


Modeste geedee à dit dans le post précédent, que Jours ne peux pas être supérieur à 31 et Mois ne peux pas être supérieur a 12. Dit comme ça c'est correct mais... la loi de la mathématique en veux autrement. Exemple: 16 + 15.

Pour avoir le total de 31, je doit partir avec : 17 - 18 - 19 etc. Donc, en partant avec 17, je suis déjà supérieur à 16.


En revenant sur les diverses fonctions proposées, j'ai repris un exemple et adapté comme suit:


Code:
Dim Annee, Mois, Jours As Byte
'____________________________________

Sub Jours_de_Vie()
Dim Time_Elapsed As String

       Annee = Year(Date - [B5]) - 1900
      Mois = Month(Date - [B5]) - 1
    Jours = Day(Date - [B5]) + 1
     Time_Elapsed = Annee & " ans " & Mois & " mois " & Jours & " jours"
     
   If Jours >= 31 Then Mois = Mois + 1: Jours = 0
 If Mois >= 12 Then Annee = Annee + 1: Mois = 0
     
  If [B5] <> "" Then
   [D5] = Time_Elapsed
    Else
     [D5] = ""
    [B5].Select
   End If
 If [D5] = "" Or [D5] <> "" Then [B5].Select
End Sub



A+ :cool:
 

Modeste geedee

XLDnaute Barbatruc
Re : Calendrier automatique

Bonjour à tous,

et oui! Je réouvre la débat.
Jours ne peux pas être supérieur à 31 et Mois ne peux pas être supérieur a 12.

Pour avoir le total de 31, je doit partir avec : 17 - 18 - 19 etc. Donc, en partant avec 17, je suis déjà supérieur à 16.
:confused: :mad:
cette supputation n'a aucune relation avec la macro originale proposée par MJ_13
https://www.excel-downloads.com/threads/calendrier-automatique.215864/!!!!
Mois = Month(DatEnCours - DatNaissance) - 1
strictement : retour possible de Month : 1 à12
Mois =Month -1 ==> 0 à 11
Jour = Day(DatEnCours - DatNaissance)
strictement : retour possible 1 à 31

Persiste et signe.
:rolleyes:
que tu élucubres ensuite sur tes propres modifications de cette macro, me détache de ce débat !!!;)
:cool:
 

Roland_M

XLDnaute Barbatruc
Re : Calendrier automatique

re

puisque c'est relancé et en attendant des nouvelles de Mr ROGER2327 !
c'est lui qui a réaliser ce classeur en incorporant ma macro et son calcul savant !
comme d'habitude, c'est toujours un plaisir de le lire (on se sent parfois très petit !)

alors je joint le classeur avec une nouvelle macro reprenant son principe pour le calcul des jours
mais il demeure qq différences !? j'y regarde dès que j'ai un peu de temps (pour le plaisir).
 

Pièces jointes

  • 2calendrier-automatique-age-2R-.xlsm
    31.1 KB · Affichages: 48

Lone-wolf

XLDnaute Barbatruc
Re : Calendrier automatique

Re Modeste geedee,

moi je te parle de mathématique et non de TEMPS.

Comment veux-tu compter les 366 jours d'une année, si tous les fins de mois tu remets le compteur à 0???

Fonction EcartDate

Date de naissance: 16.01.1965 ={49\0\8}

Si le résultat est ce que je pense: 49 ans, 0 mois, 8 jours


Je défie même les plus grands ordinateurs du monde à dire que le résultat : 16 + 8 = 25.


A+ :cool:
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Calendrier automatique

Bonjour Staple,

et bien voilà le résultat Or 49 years, 9 days excluding the end date.

Avec Inclure la date de fin de calcul (1 jour est ajouté) 49 ans et 10 jours, mais c'est faux.

Qu'est-ce qu'on nous a appris à l'école?

16 + ... = 25, vous êtes sûr que ça fait 10 ???



A+ :cool:
 

Staple1600

XLDnaute Barbatruc
Re : Calendrier automatique

Re

Le 16 est le jour 1
Le 17 est le jour 2
Le 18 est le jour 3
Le 19 est le jour 4
Le 20 est le jour 5
Le 21 est le jour 6
Le 22 est le jour 7
Le 23 est le jour 8
Le 24 est le jour 9
Le 25 est le jour 10

Donc ce n'est point faux.
49 ans 0 mois 9 jours ou 10 jours sont OK mais 8 pas OK.

Maintenant tu as le droit de ne pas être d'accord ;)
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Calendrier automatique

Re Stapple,

et c'est bien 8 jours que la fonction proposé par Bernard donne comme résultat.



Code:
Function EcartDate(DatNaissance As Date, DatEnCours As Date)
'D'après une procédure de Roland_M
Dim Annee, Mois, Jour
  Annee = Year(DatEnCours - DatNaissance) - 1900
  Mois = Month(DatEnCours - DatNaissance) - 1
  Jour = Day(DatEnCours - DatNaissance)
  If Jour >= 31 Then Mois = Mois + 1: Jour = 0
  If Mois >= 12 Then Annee = Annee + 1: Mois = 0
  EcartDate = Array(Annee, Mois, Jour) 'Renvoie un vecteur-ligne à trois composantes.
End Function

Fait un test avec 16.01.1965 et regarde à droite le résultat = { }

Ensuite tu met 15.01.1965, quel'est le résultat obtenu?


A+ :cool:
 

Discussions similaires

Statistiques des forums

Discussions
311 722
Messages
2 081 930
Membres
101 843
dernier inscrit
Thaly