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 :

Pb de Format dans Userform [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Pb de Format dans Userform
    Bonjour à tous,
    J'ai un userform dont certains contrôles Textbox.
    J'ai forcé le format (monétaire, date...) de ceux-ci par la solution "classique"
    Private Sub Textbox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    exemple
    Textbox1.value = Format(Textbox.value,"dd mmmm yy")
    ou bien
    Textbox2.value = Format(Textbox.value,"# ##0.00")
    etc...
    Le problème est que si j'envoie une valeur de Textbox1, le format s'affiche correctement (par exemple en date). Mais dès que je sors de Textbox2 alors le format de Textbox1 disparaît !!??
    Je galère sur mon code depuis quelques heures (vérification des Tabindex...)
    mais je n'arrive pas à m'expliquer cette anomalie.
    Quelqu'un a-t-il une explication ? Merci pour votre aide. Cordialement.

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Par défaut
    Et ben c'est pas très clair tout ça...

    Qui est TextBox dans ton form ? un troisième TextBox ?

    Qu'entends-tu par envoyer une valeur de TextBox1 ?

    Passe nous ton code, ce sera plus clair

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Ce que j'ai voulu dire dans mon exemple.
    Le formatage, dans mon usf de tous les Textbox commencent par cette procédure évènementielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Textbox_Exit.......etc 
    Textbox.value=Format(Textbox.Value, etc
    End Sub
    (Ici Textbox représente les Textbox en général, tels que je les ai formatés en monétaire ou en date)
    Pus j'ai donné 2 exemples Textbox1 et Textbox2
    Dans mon userform, si j'entre une valeur dans Textbox1 exemple 13/8/9 alors, après la touche Entrée activée, l'userform affiche 13 Août 2009. Très bien.
    Si j'entre une valeur en Textbox2 exemple 500, l'userform affiche 500 €. Très bien, mais le problème est que, dès cette donnée entrée, le 1er Textbox s'affiche 13/08/2009.
    En espérant m'être mieux exprimé. Merci

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Par défaut
    Voilà un code qui fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox1.Value = Format(TextBox1.Value, "dd mmmm yy")
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox2.Value = Format(TextBox2.Value, "# ##0.00")
    End Sub

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Merci.
    Mais c'est justement le type de code que j'ai adopté.
    Je viens de remarquer que c'est le Textbox précédent qui perd son format.
    Si j'entre une valeur en Textbox3, c'est le Textbox2 qui perd son format.
    Ce pb doit survenir d'une autre raison. Cordialement.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Par défaut
    1/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Mon code
    TextBox1.Value = Format(TextBox1.Value, "dd mmmm yy")
    N'est pas la même chose que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Ton code
    Textbox1.value = Format(Textbox.value,"dd mmmm yy")
    2/ Où se trouve tes private sub ? Ils devraient être dans le module de ton userform

    3/ j'ai testé et ça fonctionne

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    1 - J'ai mal recopié. Bien entendu, ton code et le mien sont identiques. Sinon le format du Textbox ne serait pas respecté

    2 - Tous les sub relatifs au formatage de l'userform sont bien entendu placés dans le module de celui-ci

    3 - Ce problème n'est pas survenu lors d'une précédente version de mon développement.

    4 - Parallèlement, je développe un usf simplifié, débarrassé de toute donnée confidentielle et je regarde. A l'occasion, je l'enverrai sur le forum.

    5 - Merci

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je pense que pour obtenir des réponses précises il faut poser des questions précises.

    Ce qui vous paraît évident peut ne pas l'être pour ceux qui vont essayer de vous répondre.

    Pourquoi écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Textbox_Exit.......etc 
    Textbox.value=Format(Textbox.Value, etc
    End Sub
    ou la 1ère fois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Textbox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'exemple
    Textbox1.value = Format(Textbox.value,"dd mmmm yy")
    'ou bien
    Textbox2.value = Format(Textbox.value,"# ##0.00")
    Bien sûr que dans les 2 cas cela ne fonctionnerait, la procédure ne se lancerait même pas.

    Mais au lieu de mal recopier, il serait plus facile de faire un copier/coller.

    D'autre part n'oubliez pas de préciser votre version d'Excel, c'est demandé, et cela pourra être utile à l'avenir (lorsque vous créez votre message vous cliquez sur "Intitulé" à gauche de votre titre et lorsque vous mettez des lignes de code utilisez les balises CODE : vous sélectionnez vos lignes de code puis vous cliquez sur # dans la barre d'outils au-dessus de la fenêtre dans laquelle vous écrivez votre message.

    Si vous avez oublié vous pouvez cliquer sur le bouton "Editer".

  9. #9
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,
    J'ai résolu mon problème.
    Dans mon développement, d'autres macros utilisent les données correspondant aux textbox de mon usf. J'ai mis un peu d'ordre et le formatage de mes textbox ne pose plus problème, Merci à Laurentabj.

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

Discussions similaires

  1. [WD-2007] format de date dans USERFORM
    Par Jumanji dans le forum VBA Word
    Réponses: 6
    Dernier message: 21/01/2012, 16h57
  2. [XL-2003] Problème de formats dans un userform
    Par MarcelG dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 30/03/2010, 15h18
  3. Format de données dans userform
    Par _Nimy_ dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/03/2008, 11h16
  4. Formater um Textbox dans UserForm
    Par A@Lah dans le forum Word
    Réponses: 1
    Dernier message: 17/10/2007, 15h40
  5. format heure dans userform
    Par maoricio dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 25/08/2007, 14h00

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