1. #1
    Membre du Club Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : cadres
    Secteur : Bâtiment

    Informations forums :
    Inscription : mai 2008
    Messages : 91
    Points : 56
    Points
    56

    Par défaut Calcul écart de date dans textbox

    bonjour,

    je regarde partout mais je ne trouve pas de solution à mon problème.
    j'ai une textbox avec une date d'embauche.
    dans une autre texbox je souhaiterais calculer la différence en nombre d'année par rapport à la date du jour.
    Si quelqu’un a la solution ou peux m'indiquer ou je peux me renseigner.
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    juin 2006
    Messages
    5 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : juin 2006
    Messages : 5 478
    Points : 14 189
    Points
    14 189

    Par défaut

    Salut, formule plus complète que demandé, à adapter au contexte, à voir aussi pour l'histoire de +/- 1 ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Option Explicit
     
    Function DiffDateAMJ(DateDebut As Date, DateFin As Date) As String
    Dim NbAns As Long, NbMois As Long, NbJours As Long
    Dim Tmp As Date, sA As String, sM As String, sJ As String
     
        Tmp = DateSerial(Year(DateFin), Month(DateDebut), Day(DateDebut))
        NbAns = Year(DateFin) - Year(DateDebut) + (Tmp > DateFin)
        NbMois = Month(DateFin) - Month(DateDebut) - (12 * (Tmp > DateFin))
        NbJours = Day(DateFin) - Day(DateDebut) + 1    ' [ Date Début, Date Fin ]
        'NbJours = Day(DateFin) - Day(DateDebut)       ' [ Date Début, Date Fin [
     
        If NbJours < 0 Then
            NbMois = NbMois - 1
            NbJours = Day(DateSerial(Year(DateFin), Month(DateFin), 0)) + NbJours
        End If
     
        If NbAns = 0 Then sA = "" Else sA = NbAns & "a "
        If NbMois = 0 Then sM = "" Else sM = NbMois & "m "
        If NbJours = 0 Then sJ = "" Else sJ = NbJours & "j"
     
        DiffDateAMJ = Trim$(sA & sM & sJ)
    End Function
    Images attachées Images attachées  
    Pensez à Voter, d'avance merci. @+ Philippe
    Balisez votre code après l'avoir indenté sous Excel (< 2013) via Smart Indenter
    Autres utilitaires : MZ Tools 8.0 VBA , 7Zip et Antidote

    Liste des Contributions : Manipulations des PDF via Excel / Acrobat / PDFCreator / xPDF

  3. #3
    Membre du Club Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : cadres
    Secteur : Bâtiment

    Informations forums :
    Inscription : mai 2008
    Messages : 91
    Points : 56
    Points
    56

    Par défaut

    bonjour,
    déjà merci pour le temps que vous avez pris pour me répondre.
    Je me permet de vous redemander une solution à mon problème.
    Ma précédente demande n'était pas correct je pense.
    Pour cela je met une capture d'écran de mon useform.
    La date d'embauche sera rentrée manuellement, par contre le résultat doit s'afficher dans la texbox : ancienneté.
    Le calcul devras être la différence entre (la date d'embauche et aujourd'hui) et le résultat en nombre d'année.
    je sais le faire dans un tableau excel mais pas directement dans une userform.
    Encore merci pour l'attention portée à ma demande.
    Dans l'attente d'une future réponse.
    Merci à vous
    Nom : Capture.JPG
Affichages : 34
Taille : 113,9 Ko

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    juin 2006
    Messages
    5 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : juin 2006
    Messages : 5 478
    Points : 14 189
    Points
    14 189

    Par défaut

    Re, à adapter au contexte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Option Explicit
     
    Private Function DiffDateAMJ(DateDebut As Date, DateFin As Date) As String
    Dim NbAns As Long, NbMois As Long, NbJours As Long
    Dim Tmp As Date, sA As String, sM As String, sJ As String
     
        Tmp = DateSerial(Year(DateFin), Month(DateDebut), Day(DateDebut))
        NbAns = Year(DateFin) - Year(DateDebut) + (Tmp > DateFin)
        NbMois = Month(DateFin) - Month(DateDebut) - (12 * (Tmp > DateFin))
        NbJours = Day(DateFin) - Day(DateDebut) + 1
     
        If NbJours < 0 Then
            NbMois = NbMois - 1
            NbJours = Day(DateSerial(Year(DateFin), Month(DateFin), 0)) + NbJours
        End If
     
        If NbAns = 0 Then sA = "" Else sA = NbAns & "a "
        If NbMois = 0 Then sM = "" Else sM = NbMois & "m "
        If NbJours = 0 Then sJ = "" Else sJ = NbJours & "j"
     
        DiffDateAMJ = Trim$(sA & sM & sJ)
    End Function
     
    Private Sub TextBox1_Change()
        If IsDate(TextBox1.Text) Then
            TextBox2.Text = DiffDateAMJ(TextBox1.Text, Date)
        End If
    End Sub
    Images attachées Images attachées  
    Pensez à Voter, d'avance merci. @+ Philippe
    Balisez votre code après l'avoir indenté sous Excel (< 2013) via Smart Indenter
    Autres utilitaires : MZ Tools 8.0 VBA , 7Zip et Antidote

    Liste des Contributions : Manipulations des PDF via Excel / Acrobat / PDFCreator / xPDF

  5. #5
    Membre du Club Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : cadres
    Secteur : Bâtiment

    Informations forums :
    Inscription : mai 2008
    Messages : 91
    Points : 56
    Points
    56

    Par défaut

    bonjour,
    un grand merci pour votre contribution.
    Le code fonctionne est j'ai pu l'adapter a ce que j'avais besoin.
    Que demander de plus
    je ne n'aurais jamais trouver seul je pense, pourtant je cherche.

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    juin 2006
    Messages
    5 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : juin 2006
    Messages : 5 478
    Points : 14 189
    Points
    14 189

    Par défaut

    Re, beaucoup plus léger, sans fonction externe, si tu ne veux vraiment que l'année. Attention quand même au résultat ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_Change()
        If IsDate(TextBox1.Text) Then
             TextBox3.Text = DateDiff("yyyy", TextBox1.Text, Date)
        End If
    End Sub
    Images attachées Images attachées  
    Pensez à Voter, d'avance merci. @+ Philippe
    Balisez votre code après l'avoir indenté sous Excel (< 2013) via Smart Indenter
    Autres utilitaires : MZ Tools 8.0 VBA , 7Zip et Antidote

    Liste des Contributions : Manipulations des PDF via Excel / Acrobat / PDFCreator / xPDF

  7. #7
    Membre du Club Avatar de orcinus
    Homme Profil pro
    cadres
    Inscrit en
    mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : cadres
    Secteur : Bâtiment

    Informations forums :
    Inscription : mai 2008
    Messages : 91
    Points : 56
    Points
    56

    Par défaut

    bonjour,
    merci beaucoup.Je vais tester cela.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. afficher le calcul de 2 dates dans une textbox
    Par popo38 dans le forum JavaScript
    Réponses: 2
    Dernier message: 07/09/2011, 12h26
  2. masque de saisie date dans textbox
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/08/2008, 14h15
  3. Calcul d'écart de date dans BO
    Par tang121 dans le forum Deski
    Réponses: 8
    Dernier message: 20/12/2007, 10h43
  4. afficher dates dans textbox d'un Userform
    Par newsinfos dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/11/2007, 11h41
  5. affichage et calcule de la date dans un tableau
    Par argon dans le forum Interfaces Graphiques en Java
    Réponses: 35
    Dernier message: 22/06/2006, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo