format date textbox

B

bruno

Guest
bonjour a tous.
Une question pour à nos experts.
je sais celle ci doit etre souvent posée mais bon ....
voila dans un userform j'ai cree un textbox dans un userform .
celui doit recevoir du date au format JJ/MM/AAAA.
au chargement du userform le champ est vide, je voudrais des qu'un utilisateur saisit la date sous jjmmaaaa je voudrais que le textbox affiche JJ/MM/AAAA.
j'ai essaye avec une ligne en vba du type format(..........)
mais des que je saisi les 2 premiers chiffre l'affichage donne
00/00/000012 Help merci .......


a+
 
@

@+Thierry

Guest
Bonjour Bruno,


Je me suis un peu penché sur la question...... C'est pas évident du tout de te donner une réponse fiable...

L'ideal serait carrément d'utiliser 3 TextBox... mais bon, si tu veux récupérer une valeur Date ... c'est pas le top...

Non je suis fatigué là... mais les tous formats que j'ai testés ne sont pas concluants...

Sinon tu veux pas utiliser un control Calendar ? (là plus de soucis !!) lol

A mois que quelqu'un nous sorte une astuce de derrière les fagots... Surtout pour conserver la valeur date....

Bonne Nuit
@+Thierry
 
A

andré

Guest
Salut Bruno et Thierry,

Tu as raison Thierry, j'ai été fouiner derrière ma réserve de bois de chauffage, et j'y ai trouvé une petite formule qui pourrait bien faire l'affaire (lol).

En pièce jointe, because traduction des fonctions.

J'ai quelque peu du piocher pour les jours entre le 01 et le 09 du mois, mais j'y suis parvenu.

Si cette formule est mise en macro évenementielle, ce que je ne sais pas (encore) faire, je crois qu'il y a moyen de résoudre le problème posé.

Je te laisse faire, ô grand spécialiste.

André.
 

Pièces jointes

  • date_mise_en_forme.xls
    13.5 KB · Affichages: 156
@

@+Thierry

Guest
=> DEMO UserForm TextBox format date

Hello Hello,

Bon alors sur ce coup ci c'est plutôt Petit Magicien que Grand Spécialist !!

Mais bon, je n'ai pas fait les formules en macro évènementielle... !! Mais j'ai trafiqué un UserForm avec une TextBox coupée avec ta hache de bois de chauffage André !!

J'espère que celà pourra convenir à Bruno... Car c'est vraiment un casse tête sinon... Je pense qu'il doit carrément exister un ActiveX spécial pour gérer diretement ce problème en textbox...

Enfin çà retourne bien une date sur la feuille... comme en démontre la Mini Démo ci-jointe.

J'y ai mis des tests basics... et finalement si la cellule est en #value! il y a même une alerte.... Donc normalement on devrait pas pouvoir saisir autre chose qu'une date la dedans......... (c'est pour çà que moi j'utilise les Calendars tout prèts !!)

Bon Fin d'Aprèm
@+Thierry
 

Pièces jointes

  • TextBoxFormatDate.zip
    11.6 KB · Affichages: 403
A

andré

Guest
Salut,

J'ai quelque peu modifié la formule en y introduisant une alerte en cas de mauvaise imputation (merci Thierry de m'y avoir fait penser).

Pour Monique : j'y ai ajouté une variante "heures" qui répond à une question souvent posée, à savoir comment inroduire des heures sans devoir taper le ":" ou le ".." en correction automatique.

Bonne journée à tous.
André.
 

Pièces jointes

  • date_mise_en_forme.xls
    19 KB · Affichages: 138
@

@+Thierry

Guest
Bonjour à tous

Wow, simple est super efficace Ti, comme toujours !

Bravo ! Du coup on peut ajouter un code de Frédérique Sigonneau pour tester si la valeur saisie est bien une date (Exemple 31/02/2003 !!)

Il suffit de remplacer ton exit du Textbox par celui là :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim ArrD
ArrD = Split(TextBox1.Text, _
Application.International(xlDateSeparator))
If UBound(ArrD) <> 2 Then GoTo Fin
If Not IsDate(TextBox1.Value) Then GoTo Fin
Exit Sub
Fin:
MsgBox "date non valide"
Cancel = True
End Sub
'FS
'--

Et çà marche Impec !!!
Je vais me servir de ce truc quand je n'ai pas besoin d'un calendar !

Super Ti (avec ma triple TextBox çà fesait un peu bricolage :)
Bonne Journée

@+Thierry
 
T

Ti

Guest
en fait j'avais déjà rajouté le test, mais comme d'habitude, j'ai fait au plus simple :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox1.Text) Then
TextBox1.Text = Format(TextBox1.Text, "dd/mm/yyyy")
Else
TextBox1.Text = ""
End If
End Sub
 
J

Jean-Marie

Guest
Re: => DEMO UserForm TextBox format date

Problème avec la récupération des fichiers Excel attachés à un message de Microsoft Outlook 2000.

Bonjour ,

Nous avons 10 ordinateurs connectés en réseau. Pour notre travail nous avons à consulter les mêmes fichiers et parfois nous ajoutons de l'information à un fichier que nous transmettons par Email avec Microsoft Outlook.

Il arrive souvent que la personne qui reçoit le Email soit justement à travailler sur le fichier que nous lui retournons,
Ex : J'ai un fichier "Vente.xls" que je fais parvenir à un collègue par Outlook
Ce dernier a déjà un fichier du nom de "Carnet.xls" ouvert sur PC.
Donc lorsqu'il ouvre le fichier "Vente.xls" que je lui envoie attaché au message de Outlook,
le logiciel Outlook ou le logiciel Excel ajoute un chiffre à la fin du nom de fichier ( avant l'extension .xls )
Ex : Carnet2.xls ou Carnet34.xls
Le chiffre change à chaque envoie de façon transparente sans que l'on ne s'en préoccupe.
Or, un poste de travail est récalcitrant et ne veut pas accepter le fichier reçu par Email si ce dernier est déjà ouvert sur son PC.
Sur 10 postes de travail, il est le seul à ne pas se conformer.
Nous avons tenté de réinstaller Microsoft Outlook 2000, mais rien n'y change.

Nous sommes persuadé que le problème vient de Excel.

Que pouvons-nous faire pour remédier à ce petit problème ?

Merci à l'avance pour votre réponse.
Jean-Marie
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel