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 :

Mise en forme ComboBox dans UserForm [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 106
    Par défaut Mise en forme ComboBox dans UserForm
    Bonjour à vous tous!

    Après plusieurs recherches dans le forum et après avoir consulté le tutoriel sur les controles dans les UserForm, je me tourne vers vous!

    J'ai un formulaire dans le lequel il y a des ComboBox qui ont leur rowsources dans feuil1. C'est ComboBox sont pour choisir la date et l'heure. Les données sources dans feuil1 sont formatées selont le format heure 13 h 30 et le format date 2009-09-23.

    Dans mon UserForm, lorsque je clic pour dérouler la liste "heure", les heures sont bien affichées selon le format 13 h 30, mais lorsque j'en sélectionne une, l'affichage passe en mode "Standard" et me revoit une série de chiffre (39814,5624999999 pour 13 h 30). Même problème pour la date.

    Comment puis-je définir que je veux que la donnée inscrite dans les Combobox de mon UserForm utilisent le format 13 h 30 pour l'heure et le format 2009-09-23 pour la date?

    Merci à l'avance!!

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TaCombo_Change()
    TaCombo.Value = Format(TaCombo.Value, "yyyy-mm-dd")
    End Sub
    TaCombo est le nom donné à ta ComboBox

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 106
    Par défaut
    excellent!! C'était vraiment simple et à force de chercher je m'éloignais de la solution!

    Merci beaucoup!!!

    Y a-t-il une façon de faire pour faire la mise en forme des mes ComboBox toute dans le même bloc (une à la suite de l'autre). Où doit-je l'inscrire? J'ai testé dans Userform Initialize, mais ça ne fonctionne pas.

    J'aimerais avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cbxDateDebut.Value = Format(cbxDateDebut.Value, "yyyy-mm-dd")
    cbxDateDebutPrevu.Value = Format(cbxDateDebutPrevu.Value, "yyyy-mm-dd")
    cbxHeureArriveMTCE.Value = Format(cbxHeureArriveMTCE.Value, "hh:mm")
    cbxHeureArriveOperateur.Value = Format(cbxHeureArriveOperateur.Value, "hh:mm")
    Plutôt que d'avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub cbxDateDebut_Change()
    cbxDateDebut.Value = Format(cbxDateDebut.Value, "yyyy-mm-dd")
    End Sub
     
    Private Sub cbxDateDebutPrevu_Change()
    cbxDateDebutPrevu.Value = Format(cbxDateDebutPrevu.Value, "yyyy-mm-dd")
    End Sub
     
    Private Sub cbxHeureArriveMTCE_Change()
    cbxHeureArriveMTCE.Value = Format(cbxHeureArriveMTCE.Value, "hh:mm")
    End Sub
     
    Private Sub cbxHeureArriveOperateur_Change()
    cbxHeureArriveOperateur.Value = Format(cbxHeureArriveOperateur.Value, "hh:mm")
    End Sub
    Sa semble peut-être banal, mais j'ai beaucoup de ComboBox et je trouve beaucoup plus simple de retrouver la bonne au besoin en les ayant dans un seul bloc.

    Merci encore de partager votre savoir!!

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour

    Tu peux utiliser une procedure de mise forme en passant ta combobox par reference


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub cbxDateDebut_Change()
    formatDate cbxDateDebut
    End Sub
     
    Sub formatDate(ByRef Cbo As ComboBox)
    Cbo.Value = Format(Cbo.Value, "yyyy-mm-dd")
    End Sub

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 106
    Par défaut
    Dans ce cas, je dois tout de même mettre la ligne dans ComboBox_Change et le faire dans chacune des ComboBox??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub cbxDateDebut_Change()
    formatDate cbxDateDebut
    End Sub
    Il n'y a pas moyen de mettre cette ligne pour chaque ComboBox dans le userform Initialize ou un truc du genre comme pour assigner les RowSources??

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Il n'y a pas d'evenement commun a toutes les combobox

    A mon sens, le mieux serait de mettre en forme au chargement des combobox

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 07/04/2014, 18h08
  2. [8.5] Mise en forme conditionnelle dans table croisée
    Par anarK dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 29/03/2007, 11h35
  3. Réponses: 5
    Dernier message: 22/01/2007, 13h40
  4. [VBA-E] mise en forme texte dans le noeud d'une treeview
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/08/2006, 16h16
  5. (VBA-E) Problème combobox dans userform
    Par gringo69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2006, 18h28

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