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 -
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.
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:
- Aspect des listes déroulantes sous Excel
- Liste déroulante excel - Guide
- Excel liste déroulante en cascade - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
31 réponses
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
Je vais mettre en pratique et ferai un reply.
Joli travail de collaboration.
Bonne journée.
Marc
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.
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.
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.
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.
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 !
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 !
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.
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.
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 ....
bonne journée à tous
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
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ....
https://www.cjoint.com/?0EpoHel1Czf
il est vrai qu'on s'éloigne un peu des 4 colonnes visibles mais ....
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
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
Allez, je rentre dans le concours ;-)
en 4 colonnes et 2 clics :
https://www.cjoint.com/?BEpv1le4YYn
eric
en 4 colonnes et 2 clics :
https://www.cjoint.com/?BEpv1le4YYn
eric
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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
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.
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.
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 :))?
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 :))?
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
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