Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Contribuez
Contribuez Placez ici vos codes, sources, trucs et astuces que vous souhaitez partager avec les membres du club.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/06/2008, 15h54   #1
Membre chevronné
 
Inscription : mai 2007
Messages : 514
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 514
Points : 673
Points : 673
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
Type de fichier : xls DVP Demo DateBox.xls (103,5 Ko, 244 affichages)
tirex28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 13h00   #2
Membre Expert
 
Avatar de wilfried_42
 
Homme Wilfried
Auto-entrepreneur
Inscription : novembre 2006
Messages : 1 428
Détails du profil
Informations personnelles :
Nom : Homme Wilfried
Âge : 50
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 428
Points : 1 859
Points : 1 859
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é
__________________
Wilfried
wilfried_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2008, 14h28   #3
Membre chevronné
 
Inscription : mai 2007
Messages : 514
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 514
Points : 673
Points : 673
Bonjour,

Citation:
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/
tirex28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 19h44   #4
Membre Expert
 
Avatar de wilfried_42
 
Homme Wilfried
Auto-entrepreneur
Inscription : novembre 2006
Messages : 1 428
Détails du profil
Informations personnelles :
Nom : Homme Wilfried
Âge : 50
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 428
Points : 1 859
Points : 1 859
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
__________________
Wilfried
wilfried_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2008, 19h52   #5
Membre Expert
 
Avatar de wilfried_42
 
Homme Wilfried
Auto-entrepreneur
Inscription : novembre 2006
Messages : 1 428
Détails du profil
Informations personnelles :
Nom : Homme Wilfried
Âge : 50
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 428
Points : 1 859
Points : 1 859
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
Type de fichier : zip DateBoxe.zip (42,7 Ko, 99 affichages)
__________________
Wilfried
wilfried_42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h44.


 
 
 
 
Partenaires

Hébergement Web