[VBA] Userform liste déroulante [Résolu/Fermé]

Signaler
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
-
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
-
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

Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
Je crois que vous n'avez pas très bien saisi mon problème... ;-)
Messages postés
16266
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
27 octobre 2020
3 053
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 ?
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 498
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 

Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
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
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
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
Messages postés
16266
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
27 octobre 2020
3 053
j'ai bien cru écrire:
avec en "caption" une variable donnant le titre...
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
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...
Messages postés
112
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
11 janvier 2012
7
Merci à tous!