[VBA] Userform liste déroulante

Résolu/Fermé
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 - Modifié par ben13.51 le 10/01/2012 à 14:43
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 - 11 janv. 2012 à 14:10
Bonjour,

Je souhaite mettre en forme une "liste modifiable" d'un userform dans un fichier word.

Mon objectif est de créer une liste de secteurs d'activité rangés par catégories.

Je voudrais faire apparaitre le titre de la catégorie comme une ligne en gras et que cette ligne ne soit pas sélectionnable. Du genre les liste déroulante des enquêtes et sondages à remplir en ligne.

J'ai déjà créé le userform et la liste déroulante, j'y ai intégré quelques choix

Private Sub UserForm_Initialize()  

  ComboBox1.ColumnCount = 2  

  'Load data into ComboBox  

  ComboBox1.List() = Array("0120 Ministères", "0130 Directions départementales et régionales des pêches", "0140 Sociétés d'économie mixte", "0150 Collectivités territoriales")  

End Sub  


mais je ne parviens pas à mettre ces choix en forme

je voudrais :

0100 ADMINISTRATIONS ET ORGANISMES OFFICIELS (titre de catégorie non sélectionnable)
0120 Ministères
0130 Directions départementales et régionales des pêches
0140 Sociétés d'économie mixte (choix sélectionnables)
0150 Collectivités territoriales...

Si en plus je peux jouer sur la position (centré pour les lignes de titres et les lignes de choix alignées à gauche) ça serait merveilleux!

Est-ce possible et avez-vous des idées?

Merci d'avance, j'espère avoir été cair

Ben13.51

7 réponses

ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 7
11 janv. 2012 à 09:17
Je crois que vous n'avez pas très bien saisi mon problème... ;-)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 janv. 2012 à 09:30
bonjour

tu pourrais créer un la bel au dessus de ta combo avec en "caption" une variable donnant le titre non sélectionnable

d'autre part, tu alimentes ta combo à 2 colonnes à partir d'un array à liste unique ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
11 janv. 2012 à 09:47
Bonjour,
Non, le problème est assez explicite.
Je ne crois pas cela possible.

Dans une combobox, tous les éléments sont cliquables.
Tu peux contourner ce fait en intégrant un test dans ta macro. Exemple :
Private Sub ComboBox1_Change()
If ComboBox1 <> "0100 ADMINISTRATIONS ET ORGANISMES OFFICIELS " Then
    MsgBox "Action"
End If
End Sub


Pour la ligne en gras, tu oublies... Il te faudrait, en fait, utiliser un objet Combobox de la classe System.Windows.Forms... Il y a certainement d'autres solutions, plus accessibles.

Si en plus je peux jouer sur la position (centré pour les lignes de titres et les lignes de choix alignées à gauche)
Ben même sentence que pour les lignes en gras... Par contre, tu peux avoir tes titres alignés à gauche et tes éléments décalés vers la droite par rapport aux titres... Essaye ceci (ajout de 3 espaces avant chaque nom d'élément) :
Private Sub UserForm_Initialize()  
  ComboBox1.ColumnCount = 2  
  'Load data into ComboBox  
  ComboBox1.List() = Array("0100 ADMINISTRATIONS ET ORGANISMES OFFICIELS", "   0120 Ministères", "   0130 Directions départementales et régionales des pêches", "   0140 Sociétés d'économie mixte", "   0150 Collectivités territoriales")  
End Sub 

0
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 7
11 janv. 2012 à 13:42
Effectivement System.Windows.Forms doit pouvir faire ce que je veux mais ç a me semble bien trop compliqué par rapport à ce que je veux faire de ma liste déroulante...

Par contre ton idée de mise en forme avec les 3 espaces me conviens. je vais m'en contenter...
Merci bcp et à bientôt
0
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 7
11 janv. 2012 à 10:00
Pour ce qui est des 2 colonnes, effectivement le travail n'est pas achevé... je souhaitais mettre les codes dans une colonne et les libellés dans l'autre mais je n'est pas finalisé ça.

Pour ce qui est du label avec le titre en caption via une variable c'est une bonne idée mais j'ai en fait plusieurs titres de catégorie dans ma liste :

0100 ADMINISTRATIONS ET ORGANISMES OFFICIELS (titre de catégorie non sélectionnable)
0120 Ministères
0130 Directions départementales et régionales des pêches
0140 Sociétés d'économie mixte (choix sélectionnables)
0150 Collectivités territoriales

0200 ENSEIGNEMENT ET RECHERCHE (titre de catégorie non sélectionnable)
0210 Enseignement supérieur...

Et tout ça dans la même liste déroulante. Donc le label, ne va pas correspondre

En tout cas merci de ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 janv. 2012 à 11:23
j'ai bien cru écrire:
avec en "caption" une variable donnant le titre...
0
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 7
11 janv. 2012 à 11:49
Tu l'as bien écrit...
mais du coup je crois que je ne vois pas très bien comment réaliser cette opération... je ne suis pas très habitué à manipuler ces outils...
0
ben13.51 Messages postés 112 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 11 janvier 2012 7
11 janv. 2012 à 14:10
Merci à tous!
0