Taille liste déroulante

Bonjour,

J’ai créé une liste dans une feuille excel permettant de choisir une donnée parmi 18 possibles sans erreur de saisie.

La cellule devant recevoir cette donnée comporte à droite , à l’extérieur, une flèche d’activation ( quel nom faut-il donner à cet indicateur ? ) qui lorsque l’on clique dessus, fait apparaître, sous la cellule visée, la liste des options sous la forme d’une liste déroulante avec barre de défilement , mais la fenêtre ne permet pas de visualiser plus de 8 options .

Est-il possible d’agrandir cette fenêtre , çàd d’augmenter le nombre d’options visibles sans l’aide de la barre de défilement ,

(ou d’obtenir la vue synoptique de toute la liste des 18 options dans la fenêtre ) ? Comment peut-on procéder ?

Merci .

Bonjour

La propriété ListRows de la liste crée avec la boîte à outils contrôle permet de choisir le nombre d'options à afficher

Exemple joint

Cordialement

2'097proprietes-liste.zip (11.19 Ko)

Bonsoir,

pour une liste déroulante de plus de 8 items, seul un ComboBox peut offrir ce service avec toutefois un inconvénient "de taille" :

son cadre et sa flèche (ou clé) d'ouverture restent apparents en permanence. (sauf en impression, si demande formelle)

le principe est d'avoir une colonne de "titres" qui s'afficheront en liste déroulante et, contiguë ou non, une colonne dont les textes

correspondants, par ligne, s'afficheront dans une cellule cible.

sur une feuille quelconque (ex : Feuille 2)

1) dans des colonnes contiguës, sélectionner d'un seul tenant

la liste des titres et celle des textes qui leur sont associés en vis-à-vis,

puis nommer cette plage (ex : plage1)

2) par l'onglet "Développeur", clic G sur "Mode Création" pour l'activer.

fonction "Insérer" : prendre une "Zone de liste déroulante ActiveX"

la positionner sur la feuille Excel et clic D "Propriétés"

3) dans le paragraphe "Divers" , en face de "LinkedCell",

taper la ref. de cellule où doit s'afficher la réponse

(ex 1 : Feuil1!B4) ou (ex 2 : Feuil1!B7)

4) dans le paragraphe "Données", sur la ligne " BoundColumn" taper le

nombre de colonnes incluant les titres et les textes à afficher (ex : 2)

dans "ListRows", indiquer le nombre d'items qui devront apparaître

dans cette ComboBox de sélection (ex 1 : 25) (ex 2 : 20)

5) on peut sélectionner des effets d'apparence (couleur, ombrage, etc...)

avant de refermer et désactiver par clic G le mode création.

NOTA: cette ComboBox peut être positionnée n'importe où dans le classeur,

son emplacement est une question de présentation, puisqu'elle reste visible.

Bonne suite

Cordialement

EDIT : Bonsoir, Amadeüs

dslé pour le doublon, ton post ne s'est pas affiché en temps réel

Cordialement

Merci à Amadeus et Axion.

C'est exactement ce que je cherchais .

En effet la différence avec le formulaire ( ou en passant par données/validation/option/autoriser liste/définir plage source)

c'est que le bouton de liste reste toujours visible... mais ce n'est pas très important dans mon travail : il suffit de le placer sur la cellule devant récupérer cette valeur et qui aura été définie en "LinkedCell".

Je trouvais que la fenêtre de la liste déroulante limitée à 8 options glissantes, n'était pas très pratique car m'obligeait à utiliser le curseur de liste assez souvent. Je trouve plus commode de pointer directement sur la valeur affichée dans la liste complète .

Merci encore pour votre réponse aussi rapide.

Cordialement

Maintenant, comment faire pour que cette saisie à partir d'une liste synoptique, puisse être renouvelée dans la cellule suivante, au titre de l'enregistrement suivant , correspondant à la ligne "k+1", alors que l'on vient de terminer l'enregistrement de la ligne "k", et ainsi de suite , pour les enregistrements des lignes qui suivent.

Je voudrais pouvoir recopier la cellule comportant la liste étendue ( ou synoptique) avec fenêtre agrandie en nombre d'options visibles ( créée avec le menu : données/validité/options/ autorisation liste/ définition plage source) , en la faisant glissser ...

La solution passant par outils Contrôles et mode création , ne permet pas cette opération , semble-t-il .

Merci pour vos précisons ou explications SVP.

Bonsoir,

t'as tout dit, Gatebee

'va falloir choisir : valid'données étirable de 8 items ou Combo copié à réajuster (1 par 1)

sur 10 lignes, c'est jouable, mais plus demande du VBA

surtout si les lignes sont rajoutées par un tiers (éventuellement novice comme moi) ou tous les jours.

j'avais récupéré une macro qui permet de rendre le ComboBox "mobile", sur une plage donnée, dont le fichier ex joint

à adapter, bien sûr !

une condition : que la liste source soit toujours la même plage. d'où anticiper l'espace maxi

Bonne suite

Cordialement

610combobox-mobile.zip (12.25 Ko)

Bonsoir Axion,

merci pour la solution . En effet cela correspond à ce que je voulais faire .

Il s'agit donc d'une combobox-mobile ! ...

Il faudra que je me familiarise avec le code VBA... pouvez-vous m'indiquer un site expliquant d'une façon bien pédagogique les définitions à connaître et les éléments essentiels de la syntaxe VBA, permettant au moins de bien comprendre tous ce qui concerne la rédaction de ce code VBA correspondant à cette opération.

Dans votre exemple, je comprends qu'il suffit de déclarer [ Const plagenoms = "noms" ] pour que VBA comprenne que la plage des options considérées soit celle de la liste qui se trouve sous la cellule contenant "noms" , sans qu'il soit besoin d'indiquer le nombre d'options ( 27 dans votre exemple dans la feuille 2 ou listes ), ni le nom de la feuille ... est-ce bien cela ou que faut-il comprendre ?

En quoi consiste le concept "plage" à distinguer de "noms" et de "prénoms" ?

Mais n'existe-t-il pas une autre solution qui consisterait à aller chercher où se trouve rédigée la fonction ou le sous-programme prévu comme outil tout fait par VBA et permettant d'insérer une liste déroulante dans une cellule, puis d'en modifier simplement la limite prévue de n=8 lignes dans la fenêtre avec barre de défilement si l'on souhaite fixer un nombre d'options visibles supérieur à 8 dans la fenêtre , en déclarant par exemple n=12 ou 15 ou ce que l'on veut ?

Merci pours vos explications SVP.

Cordialement

Bonjour,

En matière de plage nommée, il existe plusieurs façons de procéder :

La plus simple : en sélectionnant directement la plage et en inscrivant son appellation (*) dans la case de références, à gauche de la barre de formules et valider par [Enter]

Soit en choisissant une plage ou un Combo et en ouvrant le « Gestionnaire de noms » (onglet « Formules ») puis « Nouveau »

Dans la fenêtre, inscrire le nom voulu (*), puis vérifier l’étendue d’application (feuille ou classeur) et dans « S’applique à » insérer la formule adéquate.

(*) - le nom à inscrire ne doit pas comporter d’espace (à remplacer par un souligné « _ ») si besoin.

  • Le nom doit être différent des noms exploités par Excel (nom, liste, valeur, etc…) et comporter de préférence plus de 3 caractères (pour éviter une confusion avec les titres de colonnes sur 2007, 2010…)
  • Le nom ne doit pas comporter de signes exploités par Excel ( , ; . / \ $ etc…)

Les avantages principaux de la nomination de plage sont d’une part la possibilité d’avoir cette plage source n’importe où dans le classeur et d’autre part une sécurité en cas de déplacement de la cible ou de la source, de feuille renommée, etc...

Par ailleurs, il ne faut pas confondre « nom de plage » et « titre de plage »

Le 1er est afférent à une désignation géographique spécifique pour fixer et repérer une source

Le 2nd concerne l’en-tête de liste, servant pour la présentation visuelle (désignations, références, prix HT, total, etc…), ainsi que de repère source pour Excel (notamment en listes-cascades de validation de données)

Jusque-là, on ne parle pas de VBA, si ce n’est que de ComboBox (sorte de pack VBA tout ficelé mais très accessible par les Propriétés de l’onglet Développeur, avec Mode Création activé) dont je donne quelques manips dans mon 1er post.

Ensuite, pour cette application « mobile », vient une macro VBA permettant d’obtenir la source adéquate, d’inscrire le résultat dans la bonne cellule cible avec, de surcroît, le réglage automatique du ComboBox.

Pour la dernière question, la liste validation de données n’est pas extensible au-delà de 8 items.

Seul, le combo permet cette présentation.

Pour ce qui est du VBA proprement dit, ce site propose des cours téléchargeables très intéressants

Bonne suite

Cordialement

Très bien.

Merci encore pour vos explications,

Je vais me pencher sur la question dès que possible et essayer de comprendre ces choses .

Cordialement

Rechercher des sujets similaires à "taille liste deroulante"