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 de dates en VBA dans textbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Revenue manager
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Revenue manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut Calcul de dates en VBA dans textbox
    Bonjour à tous

    j'ai crééé un userform sous excel, avec 2 calendriers et un textbox sous chaque calendrier.

    j'ai besoin que l'utilisateur puisse insérer une date dans le premier text box, et que dans le second se calcule automatiquement la date 1 an avant. les calendriers sont la pour l'indication visuelle.

    Au premier abord cela me paraissait simple mais quand je rentre la date dans le premier textbox, VBA interprete mal le calcul.

    si par exemple je rentre le 01/05/2014 (pour 01 may 14) => vba me sort dans le second le 06/02/13 alors qu'il devrait me donner 02/05/13. Le calcul fonctionne bien, car j'ai testé avec un Msgbox qui me donne la bonne date, et le calendrier se met à jour avec la bonne date.

    voici l'extrait du code


    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
     
    Private Sub Beg_date_AfterUpdate()
    Dim mydate
    Beg_date.MaxLength = 11 'nb caractères maxi autorisé dans le textbox
     Beg_date = Format(Beg_date.Value, "dd mmm yyyy")
    Calendar1.Value = CDate(Beg_date)
     
    mydate = DateSerial(Year(CDate(Beg_date.Value)), Month(CDate(Beg_date.Value)), Day(CDate(Beg_date.Value)))
    MsgBox (mydate) & Chr(10) & DateAdd("d", -364, mydate)
     
    end_date.Value = DateAdd("d", -364, mydate)
    end_date = Format(end_date.Value, "dd mmm yyyy")
    Calendar2.Value = DateAdd("d", -364, Beg_date)
     
     
    End Sub

  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 173
    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 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je te conseille la lecture de Comprendre et gérer les dates sous Excel et en VBA de Didier Gonard et tout particulièrement le chapitre III Les dates en VBA
    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 habitué
    Homme Profil pro
    Revenue manager
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Revenue manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut
    Bonjour

    Merci de votre réponse. J'ai effectivement vu ce tutoriel, et lu plusieurs fois.

    Malheureusement un détail m'échappe toujours. J'ai essayé en tappant la date en mettant le mois en lettre, j'ai essayant en tappant chiffre sur le format 'mm/dd/yy", mais je n'arrive pas à un résultat fiable.

    je vais m'y remettre

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut Bonjour,
    tu étais sur la bonne voie!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    end_date.Value =Format( DateAdd("YYYY", -1, mydate), "dd mmm yyyy")

Discussions similaires

  1. [XL-2010] Coder un filtre « Date » en VBA dans un TCD sur Excel
    Par Choupinoette dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/02/2015, 11h26
  2. Insertion champ date en VBA dans Access
    Par spud96 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/06/2010, 16h49
  3. Date par défaut dans un TextBox en Vba
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/01/2009, 08h10
  4. [DataGridView] Date du jour dans TextBox
    Par Ticoche dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/01/2008, 07h13

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