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 Dates dans textbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut Comparaison Dates dans textbox
    Bonjour

    Je cherche le moyen de comparer les valeurs dates de deux textbox afin d'éviter des incohérences entre la date de départ et la date d'arrivée.

    Voici mon code qui ne fonctionne pas :

    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
    Private Sub cont_depart_GotFocus()
    test = False
    UserForm1.Show
    If test = True Then
    If DateValue(cont_depart.Value) <= DateValue(cont_arrivee.Value) Then
    cont_depart.Value = ""
    Sheets("INFORMATIQUE").Rows(18).EntireRow.Hidden = True
    Sheets("INFORMATIQUE").Range("A18") = ""
    cont_mouvement.Select
    MsgBox "La date de départ ne peut être antérieure à la date d'arrivée." & vbLf & "Merci de modifier votre saisie.", vbOKOnly, "ERREUR DE SAISIE"
    Else
    cont_depart = Format(UserForm1.Calendar1.Value, "ddd dd mmm yyyy")
    End If
    End If
    If cont_depart = "" Then
    Sheets("INFORMATIQUE").Rows(18).EntireRow.Hidden = True
    Sheets("INFORMATIQUE").Range("A18") = ""
    Else
    Sheets("INFORMATIQUE").Rows(18).EntireRow.Hidden = False
    Sheets("INFORMATIQUE").Range("A18") = "Départ le : " & cont_depart
    End If
    End Sub
    Ces textbox sont alimentées par un userform calendar :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Calendar1_Click()
    test = True
    Hide
    End Sub
    Private Sub UserForm_Initialize()
    Calendar1.Value = ""
    Calendar1.Value = Date
    End Sub

    Je n'arrive pas à trouver le moyen de comparer.

    Merci par avance pour votre aide.

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Tu peux utilliser l'instruction dateDiff qui te retourne, suivant un argument, soit le jour, l'année ...
    si datediff negatif alors date fin antérieur a date début

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox DateDiff("d", "01/11/2009", "01/10/2009")

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut
    Hello

    Merci mais je n'arrive pas à le mettre en forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DateDiff("d", cont_depart, cont_arrivee) < 0 Then
    Il me colle une erreur d'arguments

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    quel est le type des variables cont_depart et cont_arrivee

    Le code ci dessous fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim cont_depart As String
    Dim cont_arrivee As String
     
    cont_depart = "01/11/2009"
    cont_arrivee = "01/10/2009"
     
    If DateDiff("d", cont_depart, cont_arrivee) < 0 Then
        MsgBox "anomalie"
    End If

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut
    Hello

    Comme expliqué plus haut, mes 2 textbox sont alimentées par un userform calendar.
    cont_arrivée et cont_depart sont remplis par des dates mais par contre, je ne les déclare pas dans mon sub avec des Dim ... as String

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    L'expression conditionnelle, telle qu'elle était écrite (1er message) est bonne.
    Elle devrait toutefois être accompagnée de la vérification de la validité de chacune des deux dates (avec Isdate). Si non : "incompatibilité de type" assurée.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2005
    Messages : 218
    Par défaut
    Oula

    Ça devient kohlanta là

    Pourrais-tu donner un exemple ?

    Merci

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

Discussions similaires

  1. date dans textbox
    Par Lufia dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/10/2009, 14h35
  2. date dans textbox
    Par manime dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/10/2009, 20h50
  3. afficher la date dans textbox
    Par sky88 dans le forum VB.NET
    Réponses: 1
    Dernier message: 22/07/2009, 16h59
  4. Masque de saisie date dans textbox
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/08/2008, 13h15
  5. afficher dates dans textbox d'un Userform
    Par newsinfos dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/11/2007, 10h41

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