XL pour MAC [RESOLU] Mac OS - lancer une liste déroulante à l'entrée d'une cellule

Ricou969

XLDnaute Nouveau
Bonjour,
Je n'arrive pas à trouver la solution dans le forum, désolé si je créé un sujet déjà traité.

J'aimerais avoir ma liste déroulée lors de l'entrée dans une cellule.
 

xUpsilon

XLDnaute Accro
Bonjour,

Ce qu'il souhaite si j'ai bien compris, c'est que lorsqu'on sélectionne une cellule dont les données sont validées sous forme de liste, la liste en question se déroule automatiquement, sans qu'on aie besoin de cliquer sur la flèche.

Bonne continuation
 

Ricou969

XLDnaute Nouveau
Désolé de mettre mal exprimé.
Oui xUpsilon, je ne demande pas que l'on me code ou corrige mon code, puisque je cherche à le créer; mais comme le dit xUpsilon:
que lorsqu'on sélectionne une cellule dont les données sont validées sous forme de liste, la liste en question se déroule automatiquement, sans qu'on aie besoin de cliquer sur la flèche.
Existe-t-il un ordre virtuel basic qui dis "déroules toi" ?
Ou bien une manière de contourner cette inexistence ?
 

xUpsilon

XLDnaute Accro
Re,

Tu peux essayer ça :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$A$2" And Target.Count = 1 Then
     SendKeys "%{down}"
  End If
End Sub
A la place de "$A$2" tu entres la cellule de ton choix, si il y a plusieurs cellules tu me dis, ça se complique un petit peu.

Bonne continuation
 

Ricou969

XLDnaute Nouveau
C'est ce que j'ai fais mais j'ai une erreur : appel ou procédure incorrecte :
je comprends pas pourquoi.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$C$16" And Target.Count = 1 Then
     SendKeys "%{down}"
  End If
End Sub
Capture d’écran 2020-02-06 à 15.06.49.png
 

Ricou969

XLDnaute Nouveau
Voilà, après maintes recherches, j'ai trouvé que SendKeys ne fonctionnait pas sur mac mais Application.Sendkeys, OUI !
Ainsi ce code fonctionne sur Mac OS :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      
     If (Target.Address = "$C$7" And Target.Count = 1) Or (Target.Address = "$C$16" And Target.Count = 1) Or (Target.Address = "$E$16" And Target.Count = 1) Then
       Application.SendKeys ("%{DOWN}")
    End If

End Sub
on peut faire plus élégant, sûrement, si vous avez des idées...
 

Discussions similaires

Réponses
3
Affichages
352

Statistiques des forums

Discussions
312 104
Messages
2 085 326
Membres
102 862
dernier inscrit
Emma35400