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 :

Userform / problème de format de date nom modifiable [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut Userform / problème de format de date nom modifiable
    Bonsoir,
    J'ai un soucis de retour de date dans mon userform GESTIONPOSTE, pour tout les textbox de date

    Pour le textbox DATEREPONSE, j'ai ça en code sinon le retour de date le met 42558

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub DATEREPONSE_Change()
    DATEREPONSE.Value = Format(DATEREPONSE.Value, "dd/mm/yyyy")
    End Sub
    Quand je cherche à remplacer la date j'obtient 31/12/18995



    BASE EMPLOI - DEMO.xls

    Qui aurais une idée pour avoir une date sous format normal 12/05/2014 et que je puisse la modifier facilement ?


    Merci

    Bonne soirée

    Seb

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je ne pense pas que l'évènement Change soit une bonne choses pour cette manipulation.

    L'AfterUpdate serait plus adéquate.

    Philippe

  3. #3
    Invité
    Invité(e)
    Par défaut Bonjour
    Soit tu passe ta date au format date:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub DATEREPONSE_Change()
    DATEREPONSE.Value = cdate(DATEREPONSE.Value)
    End Sub
    soit tu passe au format internationale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub DATEREPONSE_Change()
    DATEREPONSE.Value = format(DATEREPONSE.Value,"yyyy-mm-dd")
    End Sub
    je te suggère de fair le test à la sortie du contrôle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub DATEREPONSE_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If IsDate(DATEREPONSE) = False Then MsgBox "Ceci n'est pas une date": DATEREPONSE = "": Exit Sub
    DATEREPONSE.Value = CDate(Format(DATEREPONSE.Value, "yyyy-mm-dd"))
    End Sub
    Dernière modification par AlainTech ; 13/05/2014 à 21h16. Motif: Suppression de la citation inutile

  4. #4
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut
    Bonjour,
    Tes codes sont super, je les gardes pour plus tard.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub DATEREPONSE_Change()
    DATEREPONSE.Value = Format(DATEREPONSE.Value, "dd/mm/yyyy")
    End Sub

    Marche super bien à à modification des données "_Change()", et du coup pourquoi je ne peux pas changer la date "à la main" comme je peux le faire dans l'USF "BASEEMPLOI" ?

    As-tu une idée ?

    Bonne Journée

    Seb

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    A lire …


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  6. #6
    Invité
    Invité(e)
    Par défaut
    la méthode "_Change()" est déclenché à chaque fois que que tu tape un lettre au clavier. il faut attendre que l'utilisateur est fini d'entrer une date pour la valider. c'est pour cela que je t'es proposé d'utiliser la méthode DATEREPONSE_Exit qui elle s'exécute quands tu quitte le contrôle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub DATEREPONSE_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If IsDate(DATEREPONSE) = False Then MsgBox "Ceci n'est pas une date": DATEREPONSE = "": Exit Sub
    DATEREPONSE.Value = CDate(Format(DATEREPONSE.Value, "yyyy-mm-dd"))
    End Sub
    Dernière modification par AlainTech ; 13/05/2014 à 21h16. Motif: Suppression de la citation inutile

  7. #7
    Membre éclairé Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Par défaut
    @ Mar-L
    si je comprends bien ton post :
    c'est ma recherche, qui poste le probléme de renvoie de dates......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GESTIONPOSTE.DATEREPONSE = Application.VLookup(Cells(Target.Row, "I").Value, Worksheets("BASE EMPLOI").Range("A1:BB1000"), 37, False)
    Est ce que je peux imposer un format de "retour" dans ma recherche ?



    @rdurupt

    Je comprends mieux le "_Change()", je garde ton code pour valider d'éventuelles erreurs !!


    Thanks à vous deux.


    Seb

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Non, cela a voir simplement comment VBA interprète les "dates" comme indiqué dans le lien.

    Pour le retour, soit par la fonction Format soit via une fonction de date …

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

Discussions similaires

  1. [débutant]Probléme de format de date
    Par Greg84 dans le forum Access
    Réponses: 2
    Dernier message: 10/08/2006, 14h31
  2. Problème de format de date par défaut
    Par anitshka dans le forum Langage
    Réponses: 4
    Dernier message: 31/07/2006, 12h22
  3. Problème de format de date
    Par pilou0013 dans le forum Access
    Réponses: 2
    Dernier message: 11/06/2006, 22h56
  4. [VB.net] problème de format de date
    Par cladsam dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/10/2005, 18h27
  5. Problème de Format de date
    Par titititi007 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2003, 08h19

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