Création
d'entreprise
Posez votre question Signaler

Largeur liste déroulante sous Excel

stefanodimecanic 612Messages postés 28 septembre 2008Date d'inscription 26 mai 2012Dernière intervention - Dernière réponse le 2 juil. 2011 à 08:57
Bonjour,
Le question est déjà passée sur le forum mais je la repose avec quelques détails sur mon problème :
- j'ai une colonne de largeur réduite dans laquelle les utilisateurs iront sélectionner via liste déroulante un code de un caractère ; jusque là tout va bien.
- en haut de cette colonne, je veux que les utilisateurs puissent choisir un titre, via une autre liste déroulante. Ce titre a une largeur bien supérieure à un caractère, aussi l'affichage est il paramétré en vertical.
> problème : lorsque l'utilisateur veut choisir son titre dans la liste, celle-ci fait la largeur de la colonne et cette largeur réduite ne lui permet pas de visualiser les titres proposés. A un moment, un collègue a trouvé un paramètre d'affichage pour avoir une largeur plus importante mais nous avons perdu cette option et impossible de retrouver où elle se trouverait.
Rem : en fait j'ai de nombreuses colonnes juxtaposées avec ce même usage, aussi augmenter la largeur de colonne est la dernière solution envisagée
Merci d'avance de vos réponses.
Lire la suite 

Largeur liste déroulante sous Excel »

25 réponses
Réponse
+1
moins plus
Bonjour,

un collègue a trouvé un paramètre d'affichage pour avoir une largeur plus importante
Jamais vu ça... Pour moi la largeur est celle de la cellule.

Mais tu peux utiliser un autre type de liste déroulante.
- 'Affichage / barre d'outils' cocher 'boite à outils contrôles'
- sélectionner 'liste déroulante' et la dessiner sur la feuille
- celle-ci étant sélectionnée clic-droit dessus et choisir 'propriétés'
- LinkedCell : référence de la cellule recevant la sélection, par exemple B2
- ListFillRange : référence de la plage ayant la liste, par exemple G2:G9
- désactiver le mode création en cliquant sur l'icone 'equerre-regle-crayon'. Le réactiver si tu veux modifier l'emplacement ou la taille de la liste.

eric
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour,

j'avais la même question et cette réponse est un premier élément.

cependant, comment paramétrer le contrôle activex pour qu'il ne prenne sa largeur totale que quand on le sélectionne. le reste du temps je souhaiterais qu'il reste de la taille de la colonne


en espérant être clair
merci
eriiic- 7 juil. 2010 à 18:07
Salut vaucluse,

Très interessant ton fichier :-)
Tu as fais des manip spéciales sur F1 ?
Et arrives-tu à reproduire ce 'défaut' ? ;-)
eric
Vaucluse- 7 juil. 2010 à 18:21
je ne sais pas ce que j'ai fait comme manip sur F1, je me sers de ce fichier à la base pour valider ce que je propose sur CCM, un peu dans tous les sens et tous les formats
Il n'y a que sur cette feuille que ça marche, et de plus le menu garde la même largeur quelque soit la colonne de référence ou celle d'édition.
Si tu trouves, ne manque pas de nous prévenir!!!
bien amicalement
eriiic- 7 juil. 2010 à 18:24
Si tu trouves, ne manque pas de nous prévenir!!!
C'est fait à 18:15 en bas ;-)
Ajouter un commentaire
Réponse
+1
moins plus
Re,

Tu pourrais faire comme ça :
Private Sub ComboBox1_DropButtonClick()
    ComboBox1.Width = 120
End Sub
Private Sub ComboBox1_LostFocus()
        ComboBox1.Width = 60
End Sub


eric
Ajouter un commentaire
Réponse
+1
moins plus
Salut,

Il est dommage de relancer cette discussion ancienne, question pertinente de nombreuse fois évoquée.
Il existe une solution pour créer des listes de validation avec une largeur supérieure à la largeur colonne

Il faut impérativement créer la liste de validation la plus large en premier

1) la liste de validation prend la largeur de la cellule lors de sa création c'est à ce moment qu'il faut augmenter la largeur colonne ce qui conditionnera la largeur de la liste déroulante.

IL EST IMPORTANT D'ENREGISTRER LE FICHIER A CE STADE

2) si on augmente la largeur de la colonne la liste de validation suit

3) par contre si on réduit la largeur de la colonne la largeur de la liste de validation aura pour limite la largeur de la création

Cette technique découverte par hasard en 2008, fonctionne sur les versions 2000, 2003 sous 2007 et 2010 enregistrer le fichier sous l'ancienne extension .xls (classeur Excel 97-2003(*.xls)

Si tu veux un exemple fais signe
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Ajouter un commentaire
Réponse
+0
moins plus
Re,

je te remercie pour ta réponse.

Comme j'ai 100 liste à faire j'espèrais trouver quelque chose de plus propre; je bosse actuellement sur la propriété "HideSelection" mais je ne vois aucune différence que je choisisse la valeur "true" ou "False"

Une idée?

Merci d'avance
Ajouter un commentaire
Réponse
+0
moins plus
Re,

Je crois que j'ai trouvé ta manip vaucluse
Il suffit d'élargir la colonne recevant les listes déroulantes avant d'y appliquer la validation et excel garde cette précédente largeur comme largeur mini...
eric
Vaucluse- 7 juil. 2010 à 18:48
effectivement,le menu semble garder en minimum la largeur de la 1° validation appliquée dans la colonne d'édition.Et ceci pour tous les types différents de validation que l'on doit placer sur la même feuille.(une initialisation de mémoire pour la feuille, en fait)

espérons que cela servira à notre ami Bolos, mais il risque de devoir refaire son fichier pour utiliser le truc.

C'est de toutes façons bon à savoir pour l'avenir, il suffit à priori d'initialiser un menu à la largeur voulue pour calibrer le minima de tous les menus de la feuille.
Bonne chance à Bolos, merci Eric pour la précision, je pense qu'elle va servir!
bien amicalement
eriiic- 7 juil. 2010 à 19:30
Ca vaudrait le coup de rédiger une astuce je pense.
Je te laisse le faire si tu veux bien
eric
Vaucluse- 7 juil. 2010 à 19:56
désolé, mais je n'ai pas la technique là, pour placer une astuce
rectificatif
Edit le 8/7: c'est fait
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

merci pour votre réponse. la technique marche effectivement.

Par contre si dans la même colonne, en dessous des cellules concernées par le menu déroulant je fais un copier/collé depuis une autre feuille, alors le problème reviens. A ce moment là, même si je quitte sans enregistrer le problème reste à la réouverture du fichier...

crdlmt
Bolos - 8 juil. 2010 à 10:48
N'y aurait-il pas un moyen ou une commande, une propriété... (notons la "cmd") qui nous permette ceci :

Selectionner toute la feuille.
Dans données validations, choisis "tout" pour l'ensemble de la feuille.
Ouvrir VBA, dans l'onglet propriétée ou dans la ligne de code réinitialiser les largeurs de cellules par defaut?
eriiic- 8 juil. 2010 à 11:09
Apparemment non, ce n'est pas une propriété accessible.
On va continuer à y réfléchir...

@vaucluse: ben tu es plus fort que moi. J'ai tenté hier soir mais jamais trouvé le bouton valider :-s ;-)
Vaucluse- 11 juil. 2010 à 18:17
Bonjour Eric

@vaucluse: ben tu es plus fort que moi.....etc.....

ben je ne crois pas Eric! il m'a fallu quelques 6 ou 7 essais pour arriver à la caser et sans trop savoir comment j'ai réussi.
je pense qu'il faut charger une image, mettre le texte et prévisualiser.
Je crois que c'est à ce stade qu'apparait en haut à droite un bouton enregistrer mais... je ne suis plus sur de rien.
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

Une macro qui élargit les colonnes si une validation par liste est sélectionnée.
Rétablit la largeur d'origine ensuite.
Largeur validation par liste.xls
eric
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Je réveille ce vieux post tout d'abord pour remercier eriiic. J'ai mis à profit sa solution pour élargir une colonne lors de la sélection d'une liste déroulante. Je préviens tout de suite que je suis un amateur. Mes rudiments de basic me laissent pantois devant les codes modernes, mais à partir d'un exemple j'arrive à interpréter et à faire une synthèse de différentes solutions.

C'est ainsi que j'ai réalisé le projet "Créneaux Internet.xls" pour une médiathèque, en réutilisant la solution d'Eric combinée avec d'autres fonctionnalités.

Une curiosité que je mets aussi dans le dossier (voir lien ci-dessous). En travaillant sur "Créneaux Internet", je suis arrivé à une étape où, miracle, je suis parvenu à ce que je voulais au départ. Avoir une colonne de largeur 10 et quand je clique sur la liste, celle-ci s'ouvre avec une largeur de 30 sans affecter la colonne. C'est donc possible. Le problème est que mon autre fonctionnalité ne fonctionnait plus justement : n'inscrire dans la cellule que la première occurence de l'item (la liste regroupant 3 colonnes d'une autre feuille). Dans ce cas l'ensemble de la ligne se retrouvait dans la cellule.

http://www.box.net/shared/62m6ksat0x

En analysant les bugs pas à pas, j'ai vu qu'il y avait des problèmes de boucles If End If. Quand le les ai corrigées, j'ai obtenu ce qu'eriiic proposait, l'élargissement ponctuel de la colonne. Un miracle cela ne dure jamais longtemps. Mais si cela intéresse un pro de regarder pour comprendre ce qui s'est passé, cela m'intéressse, car le fait de ne modifier que la largeur de la liste est une solution plus élégante.

En attendant, merci encore de m'avoir éclairé sur mon chemin

Bien cordialement

Kostrovit
Ajouter un commentaire
Réponse
+0
moins plus
Merci Mike-31,

Et désolé pour ce réveil de post. La procédure que tu expliques fonctionne bien, mais est instable dans mon programme. La liste reprend la largeur de la colonne constamment sans que mes utilisateurs puissent dire ce qu'ils ont fait exactement pour que cela arrive. Je passe mon temps à rétablir la situation avec cette procédure, c'est un peu pénible.

Promis si je ne trouve pas la solution, j'ouvre un nouveau post pour appeler à l'aide.
Merci
Bien cordialement
Kostrovit
Ajouter un commentaire
Ce document intitulé « largeur liste déroulante sous Excel » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?