Doucle action à l'intérieur d'un ComboBox

  • Initiateur de la discussion Initiateur de la discussion Michou9
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Michou9

XLDnaute Occasionnel
Bonjour

J’ai réalisé un ComboBox pour lancer un nombre assez important de macros
Le nom de la macro ne permet pas toujours facilement de se rappeler la portée de la macro

J’ai pensé associer une information à chaque macro
Pour cela il faudrait une double action pour chaque macro contenue dans ce ComboBox.

Exemple :
Je clique sur Macro1 : Une TexBox ou Infobul s’afficherait
Je double clique sur Macro1 : Je lance la macro

Dans le fichier exemple joint :
Je clique sur Macro1 : L’information « Jaune » s’affiche
Je double-clique sur Macro1 : Je mets la zone en jaune

C'est certainement réalisable dans un UserForm

Mais est-ce réalisable directement dans une feuille ?

Merci
 

Pièces jointes

Re : Doucle action à l'intérieur d'un ComboBox

Re,

merci pour le retour 😕!
En attendant, "Label1.Visible = False" te retourne une erreur car tu veux faire apparaître un O NI ! Où est le contrôle Label1 ? Tant que tu y es, agrandis la zone de lecture !
 
Re : Doucle action à l'intérieur d'un ComboBox

Bonjour Fo_rum

Je viens de voir que j'ai loupé ton post
Il s'est intercalé lorsque j'étais en train de répondre à Job75

Merci pour ta participation
Je vais aller regarder ta proposition de ce pas

En attendant, "Label1.Visible = False" te retourne une erreur car tu veux faire apparaître un O NI ! Où est le contrôle Label1 ?

Décidément, je suis tête en l'air 🙁
Honte à moi !

Merci

A+
 
Re : Doucle action à l'intérieur d'un ComboBox

Bonsoir Fo_rum

J'ai essayé ta solution

Je vois que tu as adopté la Liste de validation

Je ne m'y étais encore jamais aventuré
cela me permet de voir les différences

Je vois que l'on peut faire a peu près la même chose

Cependant tel quel, je trouve cela moins pratique
Si je suis à la recherche d'une macro
pour visualiser les informations, je suis obliger de rouvrir la Liste à chaque fois 🙁

Merci pour ton aide

A+


Bonsoir Job75

Fo_um ma permis de localiser ma lamentable erreur

Je suis ainsi parvenu à reporter la macro dans mon tableau
Mais comme rien n’est simple !
Je suis confronté à 2 conséquences inattendues et qui pénalisent tout

Ces conséquences étaient présentes dans votre fichier
Mais comme il ne s’agissait que d’essais, je ne m’en étais pas aperçu

1) L’osque l’on clique sur « Liste »
La cellule active devient cette cellule
Du coup cela me pose un problème pour certaines macros qui demandent à pointer une zone avant leurs lancements.
Y a-t-il un moyen de faire apparaitre la ListBox sans cliquer sur Liste 😕

2) La macro bloque le copier-coller
On peut copier, mais pas coller ! 😡

Une autre question :
Est-il possible, d’indexer la ListBox sur une zone et les macros à lancer sur une autre zone ??
Pour une meilleur compréhension, voir le fichier exemple

Merci
A+
 

Pièces jointes

Re : Doucle action à l'intérieur d'un ComboBox

Bonjour Michou9, le fil,

Fichier joint avec un bouton ActiveX et ces macros :

Code:
Private Sub CommandButton1_Click()
  Dim a As Boolean
  a = CommandButton1.Caption Like "Afficher*"
  CommandButton1.Caption = IIf(a, "Masquer", "Afficher") & " la liste"
  ListBox1.ListIndex = -1 'désélectionne
  ListBox1.Visible = a
  Label1.Visible = False
End Sub

Private Sub ListBox1_Click()
  On Error Resume Next 'pour l'ouverture du fichier
  With Label1
    .Visible = True
    .Caption = [Essai].Cells(ListBox1.ListIndex + 1, 2)
    .Width = 150 'à adapter
  End With
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Application.Run ([Essai].Cells(ListBox1.ListIndex + 1).Text) 'exécute la macro
End Sub
Edit : juste pour comprendre On Error Resume Next.

A l'ouverture du fichier ListBox1_Click se lance quand la ListBox se charge.

Mais Label1 n'est pas encore chargé...

A+
 

Pièces jointes

Dernière édition:
Re : Doucle action à l'intérieur d'un ComboBox

Bonjour Job75

Merci beaucoup pour cette nouvelle macro

Je viens de retranscrire ta dernière version
Tout semble fonctionner à merveille

Cependant je découvre un nouveau handicape majeur
Le fichier exemple fait seulement une vingtaine de lignes
Mon tableau lui fait plus de 5000 lignes !

Et la Listbox est encrée à une position fixe

Si bien que si je me trouve sur la ligne 3000, je ne peux pas accéder à la liste, donc je ne peux lancer une macro, ni visualiser un commentaire sur une macro.:🙁

Serait-il possible que la ListBox et le Label soit positionnées, non pas par rapport à une référence cellule, mais une position par rapport à l’écran ?

Un autre détail, mais beaucoup plus secondaire :
Lorsque j’ai lancé une macro, je n’ai plus besoin de garder la ListBox ouverte, est-il possible lorsque je double-clique pour lancer la macro que je ferme en même temps la ListBox. ?

Merci
A+
 
Re : Doucle action à l'intérieur d'un ComboBox

Re,

1) Dans la macro du bouton, on peut si nécessaire définir les positions de la ListBox et du Label par leurs propriétés Top et Left.

2) Terminer la 3ème macro en mettant leur propriété Visible à False.

Ne pas oublier de modifier le Caption du bouton...

Lancez-vous que diable 😱

A+
 
Re : Doucle action à l'intérieur d'un ComboBox

Re,

Terminer la 3ème macro en mettant leur propriété Visible à False.

Ok merci


1) Dans la macro du bouton, on peut si nécessaire définir les positions de la ListBox et du Label par leurs propriétés Top et Left.

Là, je ne vois pas ??
Que je règle les positions Top et Left directement dans les propriétés de la ListBox et du Label ou dans la Macro du Bouton

Cette position s'effectue toujours par rapport à la feuille et non par rapport à l'écran 😕

Donc comme si je suis sur la ligne 3000, je ne vois toujours pas cette ListBox 🙁

A+
 
Re : Doucle action à l'intérieur d'un ComboBox

Bonjour

Merci ne nouvelle fois, pour cette idée

Mais ma liste est longue !

Cependant, j’ai déjà 3 lignes figées en tête de mon tableau
Que faudrait-il que je change dans
Code:
ListBox1.Height = IIf(a, 44, 5)
Pour l’étaler sur les 3 premières lignes

A quoi sert le 5 ?

J’ai bien cherché, mais pas évident de trouver la réponse sur le net …

Merci
A+
 
Re : Doucle action à l'intérieur d'un ComboBox

Re,

Cependant, j’ai déjà 3 lignes figées en tête de mon tableau

A vous de voir quelle hauteur vous voulez donner à chacune des 3 lignes en fonction des hauteurs des objets.

J'ai mis 5 (et non 0) pour la hauteur des objets masqués : ainsi ils sont toujours visibles quand on passe en mode Création.

Bon maintenant j'arrête car on arrive au 40ème post.

Je vous ai donné assez de billes pour que vous puissiez continuer seul.

A+
 
Re : Doucle action à l'intérieur d'un ComboBox

Re,

Je vois qu’il y a eu une mauvaise compréhension de ma question

Je ne demandais pas comment régler la hauteur des 3 lignes
Mais comment faire pour étaler la ListBox sur les 3 pemières lignes
Car même si je l’étale en mode création sur les 3 lignes
Elle revient invariablement sur seulement la 1ère ligne
Dès lors que je l’active.

Merci pour tous les services rendus
Bonne soirée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

L
Réponses
10
Affichages
2 K
B
Réponses
4
Affichages
2 K
N
Réponses
0
Affichages
2 K
nicolasraque
N
M
  • Question Question
Réponses
4
Affichages
2 K
Retour