Liste déroulante qui apparaît au premier clic

Bonjour,

j'ai un tableau que je remplis avec une succession de menus déroulants,

et il est un peu "lourd" de devoir double cliquer sur chaque cellule pour dérouler le menu de choix.

Je souhaiterai donc (Par macro je pense) que dès le premier clic sur une cellule comprenant un menu déroulant,

celui-ci se déroule afin de pouvoir faire mon choix.

Je pensais trouver mon bonheur grâce à Google, mais bizarrement je n'ai rien trouvé.

Est-ce impossible ?

Bonjour

Ce code ouvre automatiquement la liste de la cellule sélectionnée sur la plage B2:B10 ou C2:C10 :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Range("B2:B10,C2:C10"), Target) Is Nothing And Target.Count = 1 Then
    SendKeys "%{down}"
  End If
End Sub

Amicalement

Nad

Merci, ça marche parfaitement.

Par la même occasion ça me permet de découvrir l'instruction "sendkey" que je ne connaissais pas !

bonsoir nad

auriez - vous l'amabilite de confectionner une maquette illustrant votre reponse pour que je puisse l'assimiler

cela peut toujours etre utile

merci d'avance

Bonsoir tulipe_4,

la solution qu'à proposer Nad consiste à simuler par macro l'appui sur "Alt+Flèche bas",

qui a pour conséquence de dérouler le menu de choix.

Regarde l'aide VBA de "sendkeys", c"est très clair.

bonsoir et merci

ça va te paraitre surprenant mais je n'ai pas d'aide vba (elle n'est pas installée)

je ne conaissais pas non plus ce raccourci clavier ; je suis autodidacte au plus pur sens du terme

je vais etudier la question

bon week-end

Re

Tulipe, je t'ai copié l'aide sur Sendkeys

456sendkeys.zip (10.10 Ko)

Amicalement

Nad

merci nad

je viens de tester sur le fichier de kristofanu ; c'est pas mal encore un truc d'appris ce soir

cordialement

Bonjour à tous,

Désolé pour le remontage d'un topic un peu vieux, mais il correspond parfaitement à mon cas de figure.

Je suis un novice dans Excel, j'ai appris à m'en servir pour mon travail car certains documents que j'utilise étaient trop vieux, j'ai donc décider d'en reprendre certains sur Excel.

Malheureusement un de ces documents doit avoir un menu déroulant, mais ayant du personnel ne sachant presque pas utiliser un ordinateur sur mon lieu de travail, je voudrais que ce menu déroulant s'active quand l'utilisateur fait un simple clic gauche sur les cellules fusionnées pour avoir accès directement aux réponses possibles (il s’agit d'un document avec des questions à remplir).

J'ai réussit à faire que le menu déroulant soit présent, mais la flèche d'activation est vraiment trop petite, d'où mon besoin d'avoir ce menu s'ouvrant avec un simple clic gauche sur la cellule.

J'ai donc récupérer le code donner plus haut, mais une partie m'intrigue: If Not Intersect(Range("B2:B10,C2:C10")

Dans mon cas, la cellule se trouve en M69, mais c'est une fusion de cellules (j'ai tendance à beaucoup réduire mes cellules et faire beaucoup de fusion pour avoir plus de contrôle sur la mise en page).

Du coup je me retrouve un peu bloqué sur cette partie, et ne trouve rien qui s'en rapproche pour m'en inspirer.

Merci de votre aide !

Bonjour

Les fusions sont une plaie dans Excel. Le rôle d'Excel c'est avant tout de calculer et les fusions compliquent souvent les formules, posent des problèmes pour les sélections multiples, les copies, les insertions, l'automatisation par VBA....

On peut dans la majorité des cas remplacer les fusions par des centrages sur plusieurs colonnes ou dans des cas extrêmes, calculer sur un onglet et présenter sur un autre.

Intersect(Range("B2:B10,C2:C10") test si le clic se fait sur une des cellules des plages indiquées.

Si tu n'as qu'une seule liste il serait peut-être plus simple d'utiliser un contrôle de formulaire (voir ce fil https://forum.excel-pratique.com/viewtopic.php?f=2&t=119744&p=729891#p729891) que de partir sur VBA, d'autant que ce code de sendkeys pose problème sur les ordis portables.

Bonjour les experts,

Je viens d'élaborer une fiche client en mettant des listes déroulantes ( je m'aperçois que c'est juste pénible de cliquer sur la flèche pour dérouler le menu).

Je regarde depuis plusieurs heures sur forum et tuto, mais je comprends rien. je viens juste de réaliser ma première macro et ignore tout du VBA.

Donc si il y a une manip. ça serait juste parfait mais il faudrait m'expliquer pas a pas ( si vous en avez le courage!!!) Ca laisse rêveur!

Je bricole sur Excel et ma foie j'ai des petits bonheurs avec de belles découvertes, mais j'en veux pluss...et je suis proche de la perfection ( enfin dans ce que je crois qu'il est possible de faire avec ce magnifique logiciel)

Voila, voila, je vous met une capture en expliquant que "les cases bleutées" sont des menus déroulant sur lesquels j'aimerai cliquer sur la cellule plutôt que sur la flèche.

capture d ecran 2019 02 22 a 14 15 31

NB+: Si vous savez comment on peut insérer des (parenthèses) dans les cellules pour "Marié(e)" ça me marque "marié$"

Merci pour votre aide précieuse.

Belle fin de semaine.

J.L

Bonjour

Les fusions sont une plaie dans Excel. Le rôle d'Excel c'est avant tout de calculer et les fusions compliquent souvent les formules, posent des problèmes pour les sélections multiples, les copies, les insertions, l'automatisation par VBA....

On peut dans la majorité des cas remplacer les fusions par des centrages sur plusieurs colonnes ou dans des cas extrêmes, calculer sur un onglet et présenter sur un autre.

Intersect(Range("B2:B10,C2:C10") test si le clic se fait sur une des cellules des plages indiquées.

Si tu n'as qu'une seule liste il serait peut-être plus simple d'utiliser un contrôle de formulaire (voir ce fil https://forum.excel-pratique.com/viewtopic.php?f=2&t=119744&p=729891#p729891) que de partir sur VBA, d'autant que ce code de sendkeys pose problème sur les ordis portables.

Rechercher des sujets similaires à "liste deroulante qui apparait premier clic"