Liste déroulante
Résolu
Alex
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
J'ai créé une zone de liste déroulante avec le controle de formulaire à laquelle j'ai associé la macro que je voulais, jusqu'ici tout va bien ! Je souhaite maintenant faire en sorte que cette liste déroulante s'affiche automatiquement à chaque fois que l'utilisateur clique sur l'une des cellules de la colonne B. Là est mon problème j'ai essayé différentes choses mais rien n'a marché....
Auriez vous une idée de comment s'y prendre ?
Merci d'avance
J'ai créé une zone de liste déroulante avec le controle de formulaire à laquelle j'ai associé la macro que je voulais, jusqu'ici tout va bien ! Je souhaite maintenant faire en sorte que cette liste déroulante s'affiche automatiquement à chaque fois que l'utilisateur clique sur l'une des cellules de la colonne B. Là est mon problème j'ai essayé différentes choses mais rien n'a marché....
Auriez vous une idée de comment s'y prendre ?
Merci d'avance
A voir également:
- Liste déroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Site dangereux liste - Guide
3 réponses
Bonjour,
Ce code est basé sur un exemple d'Eriiic ICI pour l'apparition, d'un calendrier. Suffit d'adapter en changeant l'objet et donc en remplaçant par ta listbox. Ce code est à placer dans le module de la feuille concernée.
Ce code est basé sur un exemple d'Eriiic ICI pour l'apparition, d'un calendrier. Suffit d'adapter en changeant l'objet et donc en remplaçant par ta listbox. Ce code est à placer dans le module de la feuille concernée.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' si la sélection sur la feuille change (target est la référence de la sélection) If Target.Column <> 2 Or Target.Row < 2 Or Target.Cells.Count > 1 Then 'si la colonne <>2 (B) ou la ligne <2 ou la sélection fait plus d'1 cellule ListBox1.Visible = False 'alors on cache la liste Exit Sub Else 'sinon ListBox1.Top = Target.Offset(1, 0).Top ' aligner la liste avec le haut de la cellule en dessous ListBox1.Left = Target.Left ' l'aligner à gauche de la cellule ListBox1.Visible = True 'afficher la liste End If End Sub
Tu devrais pouvoir mettre un listener en JS sur la case a cliquer / ou utiliser un attribut genre onClick, qui déclencherait une fonction qui changerait la visiblité de ta liste déroulante, comme ceci
document.getElementById('SomeID').style.visibility='hidden';
document.getElementById('SomeID).style.visibility='visible';
document.getElementById('SomeID').style.visibility='hidden';
document.getElementById('SomeID).style.visibility='visible';