IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Calcul entre deux dates [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Juin 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Juin 2015
    Messages : 28
    Par défaut Calcul entre deux dates
    Bonjour
    J'utilise un code pour calculer entre deux dates dans un formulaire Excel. Le code en question fonctionne mais j'aimerais le perfectionner, dans textbox16 et textbox17 à l'initialisation du formulaire textbox16 et 17 sont automatiquement remplis. Textbox16 et rempli par la valeur de la dernière cellule de la colonne Q tandis que textbox17 et rempli par : Me.TextBox17 = Me.TextBox1 et textbox1 = date. Pour calculer la différence entre ces deux textbox je suis obligé de modifier manuellement une de ces textbox et après le résultat s'affiche bien dans textbox13. Je souhaiterais que ce calcul se fasse sans avoir besoin d'une manipulation manuelle. Je ne sais même pas si cela est possible. je met le code en question.[CODE]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ['Pour recalculer le temps d'utilisation du produit ROUTE
     
    'Permet de calculer la différence entre la date du début du produit Route et la date du jour
    Private Sub TextBox16_AfterUpdate()
    Application.ScreenUpdating = False
    Me.TextBox13 = DateDiff("m", CDate(Me.TextBox16), CDate(Me.TextBox17))
    Application.ScreenUpdating = True
    End Sub/CODE]

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour calculer la différence entre ces deux textbox je suis obligé de modifier manuellement une de ces textbox et après le résultat s'affiche bien dans textbox13
    Qu'entendez-vous par cette modification manuelle ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Juin 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Juin 2015
    Messages : 28
    Par défaut Calcul entre deux datex
    Bonjour
    Pour que le calcul se fasse je suis obligé d'effacer la date dans une des deux textbox et retaper la même date et après le calcul se fait

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        DateDeb = CDbl(CDate(TextBox16.Value))
        DateFin = CDbl(Date)
        Me.TextBox13 = Format(DateFin - DateDeb, "m")
    Cdlt

  5. #5
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Juin 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Juin 2015
    Messages : 28
    Par défaut
    je viens de tester votre code et un message apparait : erreur de syntaxe sur cette ligne : Me.TextBox13 = Format(DateFin - DateDeb, "m")Application.ScreenUpdating = True[CODE]

    [Private Sub TextBox16_AfterUpdate()
    Application.ScreenUpdating = False
    DateDeb = CDbl(CDate(TextBox16.Value))
    DateFin = CDbl(Date)
    Me.TextBox13 = Format(DateFin - DateDeb, "m")Application.ScreenUpdating = True
    End Sub
    /CODE]

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonsoir,

    La textbox16 récupère la date de début inscrite dans la dernière ligne de la colonne A de la feuille "Source", êtes-vous sûr que la dernière cellule de votre tableau n'est pas vide?

    Cdlt

  7. #7
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Juin 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Juin 2015
    Messages : 28
    Par défaut
    bonsoir
    La dernière cellule contient bien une date

  8. #8
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Pourtant:
    Nom : trouvetou.gif
Affichages : 178
Taille : 510,9 Ko

    Attention la dernière ligne du tableau structuré correspond-elle à la réelle dernière ligne des données?, sinon déposé le fichier.

  9. #9
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Juin 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Juin 2015
    Messages : 28
    Par défaut
    Bonsoir ARTURO83
    Si dans la feuille source vous modifier la date dans la colonne A en mettant 01/05/2023 et dans la colonne B, la date du jour, le résultat est de 6 mois si vous calculez manuellement
    mais en ouvrant le formulaire textbox16 contient bien 01/05/2023 et textbox17 la date du jour, mais le résultat dans textbox13 et toujours de 1 à la place de 6. Si vous effacez la date de textbox16 et que vous remettez 01/05/2023, alors textbox13 affiche bien 6. je met le fichier si besoin.Calcul 1.1xlsm.xlsm

  10. #10
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Mais enfin, dans la macro d'initialisation, vous forcer le contenu de la textbox13 alors qu'il doit être le résultat d'un calcul.
    Votre macro devrai être comme ceci:

    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
    'Pour initialiser le formulaire FrmVoiture
    Private Sub UserForm_Initialize()
        Application.ScreenUpdating = False
         With Worksheets("Source")
            DerLig = .Cells(Rows.Count, 3).End(xlUp).Row 'donnée de la sortie
            TextBox17.Value = Format(CDate(Now), "dd/mm/yyyy")
            TextBox17 = Format(CDate(Date), "dd/mm/yyyy")
            TextBox19 = Format(CDate(Date), "dd/mm/yyyy")
            Me.TextBox16 = .Range("A" & DerLig) 'Date du début Route
            DateDeb = CDbl(CDate(TextBox16.Value))
            DateFin = CDbl(Date)
            Me.TextBox13 = Format(DateFin - DateDeb, "m") - 1
            Me.TextBox18 = .Range("D" & DerLig) 'Date du début Vtt
            Me.TextBox14 = .Range("F" & DerLig) 'Difference Vtt
        End With
        Application.ScreenUpdating = True
    End Sub

  11. #11
    Membre averti
    Homme Profil pro
    salarié
    Inscrit en
    Juin 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Juin 2015
    Messages : 28
    Par défaut
    Bonsoir
    Votre code fonctionne parfaitement. Merci depuis le temps que je cherche. je marque résolu

  12. #12
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Pensez aussi à mettre en résolu dans les autres forums.
    Cdlt

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

Discussions similaires

  1. Probleme calcul entre deux dates
    Par auben dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/02/2009, 18h44
  2. Calcul entre deux dates
    Par diegochile dans le forum Deski
    Réponses: 1
    Dernier message: 02/10/2008, 14h30
  3. [Dates] calcul entre deux dates
    Par angeblanc22 dans le forum Langage
    Réponses: 6
    Dernier message: 16/03/2007, 12h42
  4. [Date] Calcul entre deux dates
    Par djodjo dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 14/09/2006, 14h32
  5. Calcul entre deux dates heures
    Par Isa31 dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 31/03/2005, 13h17

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