Aspect des listes déroulantes sous Excel

Résolu
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   -  
Jiniorai Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite modifier l'aspect de mes listes déroulantes.
Y a-t-il une possibilité pour éviter les ascenseurs de la liste, ou d'afficher toutes les valeurs dans une liste en colonnes ?
Merci de vos réponses.

A voir également:

31 réponses

touroul
 
Merci pour le travail de recherche et aussi pour avoir fourni les explications indispensables, ce qui assure la pérennité de cette question qui devient, du coup, un tuto.
Je vais mettre en pratique et ferai un reply.
Joli travail de collaboration.

Bonne journée.

Marc
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour à tous,

J'avais un peu zappé sur la réalité du week-end et c'est donc hors délai sans doute que je te propose une autre formule qui colle mieux à ce que tu demandais avec la liste de validation sur 4 colonnes, sans ascenseur :

https://www.cjoint.com/?BEosXR8Vidw

Pour transférer cette solution dans un autre classeur, il suffit, dans l'éditeur VBA, de sélectionner / déplacer la feuille formulaire "horaires" dans l'autre classeur ouvert.
Ensuite le lancement se fait avec la copie du code de la feuille saisie.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Salut gb,
Oh, j'aurais jamais pensé q'un combobox s'afficherait hors du formulaire...
C'est enregistré ;-)

eric
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour Éric,

Faut oser !

Non en fait c'est tout à fait normal. Si l'on ne bride pas une fenêtre, elle est évolutive et peut vivre en fonction des événements. Ici, le formulaire ne bouge pas (encore ?) mais le combobox vit sa vie : j'admire toujours les enfants qui revendiquent leur autonomie s'ils sont capables de la gérer...

Bonne soirée à toi.
0
touroul
 
Waouh ! De mieux en mieux !
Va falloir envoyer vos solutions à Microsoft pour Excel 2014 !
Cette dernière solution est techniquement plus compliquée et plus graphique, c'est du haut-vol !
J'en suis pour l'instant à bosser la solution de CCM81 qui m'a fourni le tuto. je tente de l'adapter à ma feuille.
Mais nul doute que j'enchainerai par ce combobox volant.
La moindre des choses de ma part, serait de mettre "Résolu" dans le titre de ce post, mais je ne vois pas le lien.

Tout le monde avance !
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonsoir touroul,

Cette dernière solution est techniquement plus compliquée

Peut-être, mais beaucoup plus facile à mettre en oeuvre : 2 plages à nommer et 2 copies !

La moindre des choses de ma part, serait de mettre "Résolu"

Pour cela il eut fallu que tu soit inscrit, mais comme tu le demandes, ce sera fait.

Merci pour la prise en compte constructive des solutions : c'est ainsi que l'on progresse.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
bonjour gbinforme

très bien vu ta solution, j'ai eu du mal avec le combobox baladeur
on peut y ajouter l'affichage du contenu du cb lorsqu'on clique sur un des boutons radio. Du coup, on gagne un clic par saisie soit une dizaine de clics pour touroul en fin de journée ....

Private Sub OB1_Click()
  Me.CBh.DropDown
End Sub

Private Sub OB2_Click()
  Me.CBh.DropDown
End Sub

Private Sub OB3_Click()
  Me.CBh.DropDown
End Sub

Private Sub OB4_Click()
  Me.CBh.DropDown
End Sub

bonne journée à tous
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
manque plus que le contrôle par la pensée et ce sera parfait ;-)
eric
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
bonjour eric

Du coup, on n'a plus besoin d'exhiber le cb, la vue est plus dégagée

https://www.cjoint.com/?0Epl7Djhees

bonne journée
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Ca me plait ;-)

Tant qu'on y est on peut exploiter l'évènement MouseDown :
Private Sub CBh_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
MsgBox (X & "," & Y)
End Sub

si Y<25 c'est qu'on déroule la liste, au-dessus c'est qu'on a fait une sélection.
avec X on peut déterminer la colonne cliquée (à peu près 45 par colonne).
Plus besoin non plus des boutons radios.
Eventuellement reste plus qu'à trouver comment afficher la liste directement déroulée.

Pas trop le temps de développer là dessus mais si l'idée vous plait... :-)

eric
0

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

Posez votre question
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
l'idée m'a bien plu, mais je l'ai appliquée aux boutons radio
https://www.cjoint.com/?0EpoHel1Czf
il est vrai qu'on s'éloigne un peu des 4 colonnes visibles mais ....
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Autre type d'affichage tout aussi pratique oui
0
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 
De mieux en mieux.
Je rentre du boulot et pas moins de 6 messages.
Le Combobox prend forme de + en +.
Certes un peu largué par vos pérégrinations techniques, je n'en reste pas moins admiratif face à votre inventivité collaborative.
Il semble n'y avoir plus qu'un pas pour atteindre 2 clics seulement pour la sélection d'un horaire particulier.
Que se passerait-il si, sans entrer dans la programmation, on ajoutait une ligne, ou une colonne, ou si on supprimait 2 colonnes sur les 4 ?

Bon courage dans vos recherches, dont la solution pourrait s'étendre à bien d'autres fonctions d'Excel.

Marc
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Allez, je rentre dans le concours ;-)
en 4 colonnes et 2 clics :
https://www.cjoint.com/?BEpv1le4YYn

eric
0
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 
Bienvenue dans la joute, Eriiic.
Ch'ti problème : ton fichier ne fonctionne pas chez moi : j'obtiens un message d'erreur : "Impossible de charger l'objet car il n'est pas disponible sur cette machine".
Puis il passe sur VBA et me montre : ".Spreadsheet 1" avec "Erreur de compilation : Membre de méthode ou de données introuvable".
Dommage, j'ai ouvert ton fichier avec fébrilité !
Quand tu auras 5 minutes, peux-tu corriger ?

Merci d'avance

Marc
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Je pense qu'il doit te manquer un élément sur ta machine.
Contrôle dans vba 'outils / références...' si tu as ces références de cochées :
https://www.cjoint.com/?BEqkwJND5Hg

Et fait un clic droit dans la boite à outils & option controles supplémentaires voir s'il est disponible, active-le :
https://www.cjoint.com/?BEqkPgL66O0
C'est Spreadsheet 11.0

J'ai redessiné un peu mieux le userform et positionné près de la cellule : https://www.cjoint.com/?BEqllFTXxrX

eric
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
bonjour eric
merci pour ta collaboration
avec un peu d'acharnement (sous excel 2003 et en plus je découvre l'outil....), je peux faire fonctionner ta spreadsheet, mais à chaque premier lancement j'ai un (même deux) message d'alerte
cette application est sur le point d'initialiser les contrôles activeX potentiellement non sûrs. Si la source de ce fichier est fiable, cliquer sur OK pour que les contrôles soient initialisés à l'aide des paramètres de l'espace de travail en cours
j'ai tenté un application.displayalerts = false un peu partout mais sans résultat.
y a t'il quelque chose à faire?
cordialement
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Oui, je ne sais pas non plus comment empêcher ce message.
eric
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
@eric
dommage, et au prix où sont les clics ;-)
plus sérieusement, si tu trouves le truc, peux tu faire suivre?
cordialement
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Salut ccm,

J'ai trouvé, mais ça passe par la modif de la BDR.
Pas sûr que ça vaille le coup car même les autres fichiers en contenant n'alerteront plus.
https://support.microsoft.com/fr-fr/help/827742

eric
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
merci eric

effectivement modifier la base de registre dans ce sens me semble risqué, c'est dommage car la solution était séduisante.
je reviens donc à ma précédente version un peu modifiée (sur la base fournie par gbinforme) pour 2 clics (ou presque) mais une seule colonne!!
https://www.cjoint.com/?0EquZVErpeP

bonne soirée
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour à tous,

Dommage, j'ai ouvert ton fichier avec fébrilité !

Au rythme où arrivent les classeurs, tu vas avoir besoin d'un médicament pour faire baisser la fièvre !

Avec un peu d'élimination du superflu et une piste d'Éric, je te propose ce qui parait être conforme à l'idée de base et en vrais 2 clics :

https://www.cjoint.com/?BEqxktbGwmP

Pour une question anodine à première vue, tu auras fait progresser la gestion des listes.
Il reste à faire en sorte quelle s'adapte au nombre de colonnes et soit multi-listes sur la feuille : encore quelques neurones à solliciter.
0
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 
Formidable ! Résultat atteint (c'est gagné pour les 2 clics !). De plus, le Combobox s'affiche très rapidement, c'est vraiment pratique pour la saisie.
Ce travail considérable, fruit d'une collaboration, est certainement adaptable à tout ce qui se présente sous forme de liste dans Excel, quel que soit le fichier et l'utilisation que l'on en fait.

Afin de solliciter encore un peu les neurones zen question, j'ai quelques axes d'amélioration à proposer :

1- Dans le Combobox, la surbrillance de sélection concerne la ligne entière et pas la cellule survolée

2- Je dois adapter le code à ma propre feuille que je joins ici :
Excel 2010 avec macros : https://www.cjoint.com/?BEri5MzHNXK
Excel 97-2003 : https://www.cjoint.com/?BEri7IqJH0e
Chaque jour, je saisis mes heures en colonnes D, G, H, I, J, M, N et Q. Le Combobox doit donc apparaître dans ces colonnes.

3- Seconde adaptation :
Un autre Combobox doit apparaître en colonnes E et K. Il doit contenir le contenu de la colonne A (A2:A24) ou (A2:A50) de la feuille "Labos". Ce contenu étant régulièrement amené à changer, le Combobox s'adaptera-t-il au nouveau contenu ?

4- A destination de ccm81 : en cas d'absence de donnée en colonnes F et L, peux-tu mettre en place en A1 le calcul : ((Px-Cx)/2)+Cx ?

Bon courage dans vos adaptations, je ne peux que vous remercier chaleureusement.

Marc
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour touroul et le forum,

Merci du sympathique message.

Je me doutais bien que tu voulais ce genre de saisie et c'est en cours de validation.
0
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 
Oui, effectivement.
En réalité, j'avais choisi de ne pas joindre mon fichier dans un premier temps parce que j'avais l'espoir de pouvoir adapter moi-même votre travail. Mais mon niveau Excel n'étant pas suffisant, j'ai cédé. J'ai certes compris quelques bribes de ce que vous avez fait, mais c'est bien insuffisant, si j'en avais le temps il faudrait que je prenne des cours de VBA. C'est un truc qui pourrait me brancher, en plus. J'espère pouvoir m'y mettre un jour, mais avec deux petites filles de 4 et 7 ans à la maison, ce n'est pas facile.
Je fais de l'informatique depuis 26 ans (j'en ai 38), et j'ai toujours été comme ça : passer 10 heures sur un fichier pour gagner 4 secondes par jour (j'en connais d'autres comme ça, dans ce post ...), mais n'est-ce pas ainsi qu'on se forge des connaissances ?
Bonne nouvelle : cette question innocente devient le forum le plus actif de Comment Ca Marche, rien que ça !

A plus.
Marc
0
Jiniorai Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour touroul,

Aujourd'hui j'ai le même souhait que tu avais càd éviter un ascenseur et voir la liste déroulante sous forme de colonnes.
La solution que tu as reçue me semble intéressante et malheureusement les liens vers les fichiers de CCM81, gbinforme ne sont plus disponibles.
Pourrais-tu m'envoyer un fichier ( si possible sous excel2003! et oui encore) qui me permet donc d'afficher une liste de choix (pex ±30 choix) non pas en 1 colonne de 30 mais en plusieurs colonnes (pex 4 colonnes de 8)?
Merci d'avance.
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Voici un nouveau lien du classeur qui date un peu :
https://www.cjoint.com/c/EAuk5131SNH
0
Jiniorai Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention  
 
Déjà un grand merci pour la réponse
J'y ai jeté un coup d'oeil et c'est incroyable toutefois malgré qqs erreurs non encore solutionnées ( ex erreur de compilation valeur non définie pour idx dans Sub Ma_Liste_MouseDown qui apparait quand je clique sur une ligne d'un combobox (càd je choisis) j'ai compris comment se construit le tableau apparaissant dans la combobox.
Mais ce qui je recherche vraiment c'est pouvoir sélectionner un SEUL item du tableau multicolonne de la liste paramètre et pas une ligne entière.( ce que Touroul avait suggéré dans son point 1 d'amélioration "1- Dans le Combobox, la surbrillance de sélection concerne la ligne entière et pas la cellule survolée "
Est-ce possible avec une combobox multicolonnes ou faudrait-il afficher simultanément une combobox par colonne de la liste paramètre (et bidouiller le formatage pour faire comme si :))?
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
bonsoir

tout d'abord un coup de chapeau à gbinforme pour avoir réussi à mener au bout le cb sur 4 colonnes
la solution d'eric avec le contrôle spreadsheet était très prometteuse, dommage qu'on ne puisse pas supprimer ces messages d'alerte sans risquer d'attenter à la santé de la machine
en tout cas, j'ai beacoup appris en suivant cette discussion, et dernièrement en ce qui concerne l'évènement MouseDown que je n'avais jamais utilisé

> touroul
RQ. ((Px-Cx)/2)+Cx = (Px+Cx)/2
donc la modification ne devrait pas poser de problème.

bonne soirée
0
touroul Messages postés 509 Date d'inscription   Statut Membre Dernière intervention   16
 
J'ai honte. Dire que j'ai un bac scientifique !!!
Faut que je reprenne mes cours de maths niveau seconde !
0