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 :

Comparaison de dates: Aujourd'hui et date entrée via un user form


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Points : 71
    Points
    71
    Par défaut Comparaison de dates: Aujourd'hui et date entrée via un user form
    Bonjour a tous,

    Comme mon titre l'indique j'ai un souci au niveau d'une comparaison de dates.
    je souhaite comparer une date entrée dans une feuille excel via un user form et la date d'aujourd'hui.

    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
     
       Dim ValueDate As String
       ValueDate = Range("G" & k).Value
     
        Dim TodayDate, ValueDateGeneral As String
     
        'Date du jour
        TodayDate = Format(CDate(Now()), "General")
        ValueDateGeneral = Format(ValueDate, "General")
     
     If ValueDateGeneral < TodayDate Then
        MsgBox "KO"
        Else
        MsgBox "OK"
        End If
    ou ValueDate est la date de valeur entrée dans la feuille excel dans la ligne k et colonne G via le userform: Le format de la date est Sun 05/10/2008, meme quand je choisis manuellement General dans le format de la cellule. De la meme facon la ligne de code suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ValueDateGeneral = Format(ValueDate, "General")
    n'a pas de réelle incidence sur le format de la date.

    C'est la que je bloque. En fait j'aimerais passer au format 39536 pour pouvoir comparer les dates aisément, mais sans succés jusqu'a maintenant.

    Si quelqu'un a une idée je suis preneur!


    Merci d'avance!
    JEO

  2. #2
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,

    utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    If not DateDiff("d", date1, date2) Then
        'date identiques
        ...
    else
        'même dates
        ...
    end if

  3. #3
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Si tu veux comparer des dates, tu devrais le faire avec leur valeur numérique. Comparer des chaînes peux entrainer des erreurs d'interprétation de format...

    Il y a justement une discussion en cours sur le comparaison des dates.

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 530
    Points : 464
    Points
    464
    Par défaut
    Salut,
    j'aime la facilité, pourquoi ce cassé la tête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub CommandButton1_Click()
    If TextBox1.Value = Str(Date) Then
    MsgBox (" vraie")
    Else
    MsgBox ("faux")
    End If
    End Sub
    NB:
    controlsource de textbox1=feuil1!$a$1
    à vous de changer le cellule
    Bonne chance.
    Merci.

  5. #5
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Points : 71
    Points
    71
    Par défaut
    Merci beaucoup pour vos réponses.
    En effet, le souci est de refaire passer les dates avec leur valeur numérique (Ce que je n'arrive pas a faire) pour faciliter la comparaison.

    Comment faire passer/afficher la date du jour (Today() ou Now()) avec sa valeur numérique? Et je ferai de meme avec la date saisie par l'utilisateur dans le user form

    J'ai essayé avec le format "general" mais rien n'y fait.

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Ceci ne conviendrait pas ? (fais le test en entrant une date en A1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
    Dim ValueDate As Date '<-- déclaration type Date et pas type String
     
    ValueDate = Range("A1").Value
     
    If ValueDate < Now Then
        MsgBox "KO"
    Else
        MsgBox "OK"
    End If
     
    End Sub

  7. #7
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 193
    Points : 71
    Points
    71
    Par défaut
    Merci a tous!

    J'ai enfin réussi a imposer mes formats de dates comme je voulais.

    Finalement le probleme venait de mon formulaire de saisie (Un input).
    Je suis passé par un calendrier tout fait en entrant une date au format Tue 3/06/2008 et en passant par une variable temporaire au même format que la date du jour (6/3/2008).

    JEO

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

Discussions similaires

  1. Date aujourd'hui sql server
    Par sihammaster dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/05/2013, 12h03
  2. Afficher si date -7 à la date aujourd'hui
    Par barale61 dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/05/2013, 22h35
  3. boucle d'une date à aujourd'hui et variable public
    Par altra dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/12/2011, 11h21
  4. MFC Date "Aujourd'hui"
    Par MaryR dans le forum IHM
    Réponses: 2
    Dernier message: 29/11/2008, 21h05
  5. Pb pour affichage date aujourd'hui
    Par kikaillo dans le forum Access
    Réponses: 6
    Dernier message: 14/04/2006, 14h04

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