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 :

Incrémenter une date dans un textbox [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut Incrémenter une date dans un textbox
    Bonjour,
    dans un premier textbox je renseigne une date.
    Avec afterupdate je veux inscrire dans un deuxième textbox cette date plus un jour. J'ai relevé quelques solutions possibles sur le site mais aucune ne fonctionne.
    Voici les essais :

    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 DATE1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    DATE1.Text = Replace(DATE1.Text, ".", "/")
            If Not IsDate(DATE1) Then
                MsgBox "La saisie n'est pas valide !"
                Cancel = True
                DATE1 = ""
            End If
    DATE1.Value = Format(DATE1.Value, "dddd d mmmm yyyy")
    End Sub
     
    Private Sub DATE1_AfterUpdate()
    DATE2.Value = Format(DATE2.Value, "dddd d mmmm yyyy")
    DATEVAL(DATE2) = DATEVAL(DATE1) + 1 
    DATE2.Value = DATE1.Value  + 1 
    DATE2.Value = DateAdd("d", 1, DATE1.Value)
    End Sub
    Les essais, en rouge n'ont pas fonctionné.
    Si quelqu'un peu m'éclairer...
    Merci de votre attention

  2. #2
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 20
    Par défaut
    Bonjour,

    A tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub DATE1_AfterUpdate()
        DATE2 = CDate(DATE1) + 1
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut
    Merci X-L-P
    cela ne fonctionne pas non plus avec "Cdate".
    Par contre je viens de découvrir que c'est le format date qui coince.
    En effet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub DATE1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    DATE1.Text = Replace(DATE1.Text, ".", "/")
            If Not IsDate(DATE1) Then
                MsgBox "La saisie n'est pas valide !"
                Cancel = True
                DATE1 = ""
            End If
    DATE1.Value = Format(DATE1.Value, "dd mm yyyy")
    End Sub
    puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub DATE1_AfterUpdate()
    DATE2 = CDate(DATE1) + 1 'fonctionne
    DATE1.Value = Format(DATE1.Value, "dddd d mmmm yyyy")
    End Sub
    cela fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DATE2.Value = DateAdd("d", 1, DATE1.Value) 'fonctionne aussi
    DATEVAL(DATE2) = DATEVAL(DATE1) + 1  'ne fonctionne pas
    je ne peux donc pas travailler directement
    avec le format date "dddd d mmmm yyyy" dont j'ai vraiment besoin.
    Encore des pirouettes à effectuer avec les dates sous VBA.
    Si quelqu'un a une explication je suis preneur, sinon je peux considérer le problème comme résolu.
    Encore bravo aux développeurs pour la qualité de l'aide que l'on peux trouver sur le site où mes demandes sont rares car souvent renseignées par simple consultation du forum.
    Merci à tous

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par mlrdeni Voir le message
    Merci X-L-P
    cela ne fonctionne pas non plus avec "Cdate".
    Par contre je viens de découvrir que c'est le format date qui coince.
    ...

    je ne peux donc pas travailler directement
    avec le format date "dddd d mmmm yyyy" dont j'ai vraiment besoin.
    Encore des pirouettes à effectuer avec les dates sous VBA.
    ...
    Exact. La fonction FORMAT ne produit pas nécessairement une date car elle accepte n'importe quoi.

    Exemple : DATE1.Value = Format(DATE1.Value, "ALLO dd mm yyyy")
    ne produira certainement pas une valeur reconnue comme une date.

    Il faut donc s'assurer de conserver quelque part une date reconnue par VBA.
    Le code suivant utilise la propriété TAG pour conserver une date valide à laquelle on peut se référer ultérieurement.


    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
    Private Sub DATE1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
     
            If Not IsDate(date1) Then
                date1.Tag = ""
                date2.Value = ""
                Cancel = True
                MsgBox "La saisie n'est pas valide !"
                Exit Sub
            End If
     
            date1.Tag = CDate(date1.Text)
     
     
    End Sub
     
    Private Sub DATE1_AfterUpdate()
     
    If Not IsDate(date1.Tag) Then
     date2.Value = ""
    Else
     date2.Value = CDate(date1.Tag) + 1
    End If
     
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 20
    Par défaut
    MERCI.

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

Discussions similaires

  1. [C#] gestion d'une date dans un textbox
    Par Jeecer dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/08/2011, 11h23
  2. [XL-2003] Comment insérer un calendrier pour saisir une date dans un TextBox
    Par jam92400 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/10/2010, 12h50
  3. Specifier le format d'une date dans un textbox
    Par manue514 dans le forum Windows Forms
    Réponses: 25
    Dernier message: 19/05/2009, 16h21
  4. Réponses: 8
    Dernier message: 03/04/2009, 17h59
  5. Sélectionner une date dans un textbox
    Par Msysteme dans le forum ASP.NET
    Réponses: 11
    Dernier message: 19/02/2009, 17h44

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