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

Contribuez Discussion :

Une date + un Textbox = un DateBox


Sujet :

Contribuez

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut Utiliser un Textbox pour saisir une date dans différents formats
    Bonjour,

    Le problème de la saisie d'une date dans un formulaire étant régulièrement posé je vous propose de le résoudre avec un module de classe autorisant plusieurs formats de saisie tout en intégrant des règles de validation et de mise en forme conditionnelle.

    Les avantages de cette approche pour le développeur sont la souplesse et la facilité d'utilisation puisqu'il manipule non plus une valeur de type String mais directement une valeur de type Date. Pour l'utilisateur final le masque de saisie, l'infobulle et la mise en forme conditionnelle lui permettent d'identifier facilement ce qu'on attend de lui.

    • 1 Fonctionnalités:
    • Les formats disponibles:

    - Style européen(Jour Mois Année), anglais(Mois Jour Année) ou américain(Année Mois Jour)
    - Affichage de l'année sur deux ou quatre chiffres
    - Libre choix du séparateur parmi /-.,' et espace

    • Les règles de validation:

    - Un intervalle de date programmable
    - Valider la saisie des jours fériés
    - Valider les jours de la semaine

    • Le format conditionnel:
    - La couleur du texte et du fond peuvent être personnalisés selon l'état de la saisie.

    • Deux évènements permettent une interaction avec l'utilisateur final:

    - Lorsque la valeur change
    - Lorsque l'etat change

    • Divers:

    - L'infobulle du TextBox affiche le format attendu.
    - Accepte le collage de valeur de type Date.
    - Des fonctions intégrées permettent d'obtenir des informations supplémentaires tel que le numéro de semaine(norme ISO) ou le jour julien.

    • 2 Limites:
    - Pas d'evènements Enter ou Exit.
    - L'amplitude de l'intervalle est fixée à cent ans afin de permettre un affichage de l'année sur deux chiffres.
    - L'année de base de l'intervalle est déterminée au moment de l'initialisation. Si elle n'est pas précisée elle est égale à l'année en cours - 70 arrondi a la dizaine inférieure (Soit actuellement 2008-70=1938, 1938->1930).
    - Seuls les jours fériés en France sont pris en compte, pour les autres pays une petite adaptation serait donc nécessaire.

    • 3 Compatibilité:

    - Excel 2000 et postérieur
    - Testé avec Excel Xp et Excel 2003

    Le code étant un peu long pour être directement publié, je vous laisse un petit fichier de démonstration. Vos commentaires et suggestions sont les bienvenues.

    Cordialement,
    Tirex28/

    [EDIT] Fichier mis a jour suite à une suggestion de Wilfried42 concernant la gestion du BackSpace.

    [EDIT] Fichier mis a jour pour corriger un bug mineur.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour Tirex

    Je n'ai qu'un mot à dire, Admirable (comme d'habitude)

    j'aimerais (si possible) abuser de tes compétences, j'ai essayé mais comme je m'y attendais (au vu de mes connaissances) ce fut l'echec, transformer ton Module de classe en macro complementaire

    Merci encore à toi je vais etudier ce chef d'oeuvre qui est en plus tres bien documenté

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    j'aimerais (si possible) abuser de tes compétences, j'ai essayé mais comme je m'y attendais (au vu de mes connaissances) ce fut l'echec, transformer ton Module de classe en macro complementaire
    La marche à suivre est dans la FAQ:http://excel.developpez.com/faq/?pag...icNotCreatable

    Cordialement,

    Tirex28/

  4. #4
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    Encore merci Tirex, ca marche nickel........ Il est super ce lien, je le garde pour l'etudier plus tard

    Merci encore et @ + sur le forum

  5. #5
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    je mets la macro complementaire (.xla) sur le forum

    desolé tirex, la modif preconisée, je l'ai mise au boulot, mais pas sur ma machine donc elle n'est pas en place, je n'ai pas non plus de fichier exemple car les modifs apportées ne concernait que le boulot (les fichiers au boulot sont top confidentiels)

    adaptation : la saisie des heures (0:00 à 23:59)
    nouvelle propriete : ClsDateTime : DbxDate ou DbxTime

    la propriete shortdate est utilisée, False : saisie des secondes, True : non

    jusqu'à maintenant, la procedure n'a pas planté (utiilisation journaliere au boulot) mais n'ayant pas encore tout compris, (j'essaie actuellement de faire une saisie masquée programmée ).....

    merci encore à tirex pour ce casse neurone (et je n'ai pas mis de s) .....

    Edit : Mise en place d'un petit fichier exemple, et correction de petits bug
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 993
    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 : 12 993
    Points : 29 039
    Points
    29 039
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Vieille contribution d'Emmanuel Tissot qui mérite le détour.
    Superbe démonstration d'un module de classe qui contrôle l'encodage d'une date dans un TextBox avec une multitude de paramètres.
    J'en profite pour conseiller la lecture de son tutoriel Office et les modules de classe.

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/04/2009, 18h59
  2. Réponses: 1
    Dernier message: 10/08/2008, 13h52
  3. Saisie d'une date dans une textbox
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 23/11/2007, 13h51
  4. Réponses: 9
    Dernier message: 08/08/2007, 14h56
  5. Mettre une date par defaut dans une textBox.
    Par yaumme dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 01/12/2005, 23h39

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