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

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

  • Combobox.xlsm
    21.3 KB · Affichages: 48
  • Combobox.xlsm
    21.3 KB · Affichages: 51
  • Combobox.xlsm
    21.3 KB · Affichages: 48

job75

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

Bonjour Michou9,

Pas compris pourquoi vous parlez de "double action", la couleur n'est qu'une information...

Alors mettez 2 colonnes sur la ComboBox : propriété ColumnCount à 2.

Et nommez Essai la plage K1:L5.

Fichier joint.

A+
 

Pièces jointes

  • Combobox(1).xlsm
    22.4 KB · Affichages: 39

job75

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

Re,

Maintenant on peut n'avoir qu'une colonne et commencer la macro ComboBox1_Change avec :

Code:
Select Case Trim(Split(ComboBox1.Value, "-")(0))
Fichier (2).

A+
 

Pièces jointes

  • Combobox(2).xlsm
    22.7 KB · Affichages: 42

Michou9

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

Bonsoir

Merci pour ta réponse

Mais si j’ai mis juste un mot comme « Information », c’était juste par facilité.

En réalité « l’Information » peut-être une phrase entière et se serait donc trop long pour tenir dans une 2ème colonne

Ou alors elle occuperait toute la largeur de l’écran, voir plus …

A+
 

job75

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

Re,

Bon OK, un fichier un peu plus significatif aurait évité de perdre du temps.

Code:
Private Sub ComboBox1_Change()
  Dim lig As Variant
  lig = Application.Match(ComboBox1, [Essai], 0)
  If IsError(lig) Then Exit Sub
  If MsgBox([Essai].Cells(lig, 2) & " - OK ??", 4) = 7 Then Exit Sub
  Select Case ComboBox1
    Case "Macro1": Macro1
    Case "Macro2": Macro2
    Case "Macro3": Macro3
    Case "Macro4": Macro4
    Case "Macro5": Macro5
  End Select
End Sub
Fichier (3).

A+
 

Pièces jointes

  • Combobox(3).xlsm
    23.8 KB · Affichages: 54

job75

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

Bonjour Michou9, le forum,

Noter qu'on peut écrire plus simplement :

Code:
Private Sub ComboBox1_Change()
  Dim lig As Variant
  lig = Application.Match(ComboBox1, [Essai], 0)
  If IsError(lig) Then Exit Sub
  If MsgBox([Essai].Cells(lig, 2) & " - OK ??", 4, "Choix") = 6 _
    Then Application.Run ComboBox1
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Doucle action à l'intérieur d'un ComboBox

Bonjour Michou9, le forum,

Un petit essai (sans doute imparfait) avec deux TextBox auxilliaires. Si on positionne la souris sur le texte des éléments de la liste déroulée un message apparait.
 

Pièces jointes

  • Combobox v1.xlsm
    31 KB · Affichages: 47

job75

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

Re, salut mapomme,

Avec une ListBox et un Label :

Code:
Private Sub ListBox1_Click()
  With Label1
    .Caption = [Essai].Cells(Application.Match(ListBox1, [Essai], 0), 2)
    .Width = 150 'à adapter
    .Visible = True
  End With
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Application.EnableEvents = False 'évite le déclenchement de LostFocus()
  Application.Run (ListBox1) 'exécute la macro
  Application.EnableEvents = True 'réactive les événements
  ListBox1.Activate 'redonne le focus
End Sub

Private Sub ListBox1_LostFocus()
  ListBox1.ListIndex = -1 'désélectionne
  Label1.Visible = False
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Listbox(1).xlsm
    29.7 KB · Affichages: 69
  • Listbox(1).xlsm
    29.7 KB · Affichages: 84
  • Listbox(1).xlsm
    29.7 KB · Affichages: 69

Michou9

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

Bonjour Job75

Merci pour ce développement

J’avais pensé aussi à des MsgBox
Mais je pensais que je devrais reprendre alors toutes les macros une par une, pour leur adjoindre une MagBox.
Là je vois que tu fais appel par le biais de la liste, directement aux informations, pour les incorporées aux MsgBox, Super !

Dans ton 2ème développement, j’en croix pas mes yeux, si je comprends bien ? Je vois qu’en 7 lignes, je devrais être en mesure de gérer autant de macros que je veux, sans rien écrire :p

Peux tu me dire dans
Code:
If MsgBox([Essai].Cells(lig, 2) & " - OK ??", 4) = 7 Then Exit Sub
A quoi correspond le « 2 », « 4) et le « 7 » ?

Merci
A+
 

Michou9

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

Bonjour Mapomme

C’est pas mal du tout !! :eek:

Merci pour ce développement

Juste 2 petits problèmes :

Mais je me demande d’où cela peut provenir et si ce n’est pas dû à un problème vidéo ?

Lorsque je pointe le Combobox, j’ai un sautillement constant du pointeur à l’intérieur, pas grand-chose, mais très gênant visuellement et qui rend la sélection difficile…

L’information qui apparait dans le TextBox est tout trouble !

A+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Doucle action à l'intérieur d'un ComboBox

Bonsoir Michou9,

Je ne peux pas t'aider car le phénomène ne se produit pas sur ma bécane. Peut-être que d'autres forumeurs auront testé et pourront dire si ce phénomène se produit ou non.
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Doucle action à l'intérieur d'un ComboBox

(re)Bonsoir Michou9,

J'ai modifié la macro dans le fichier joint (desactiver les évènements en début de macro pour les rétablir à la fin). Cela change t il quelque chose ?
 

Pièces jointes

  • Combobox v2.xlsm
    31.7 KB · Affichages: 54

job75

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

Re,

Peux tu me dire dans
Code:
If MsgBox([Essai].Cells(lig, 2) & " - OK ??", 4) = 7 Then Exit Sub
A quoi correspond le « 2 », « 4) et le « 7 » ?

2 => 2ème colonne à partir de la plage [Essai]

4 => MsgBox avec les boutons Oui-Non

7 => valeur renvoyée par MsgBox quand on clique sur Non.

Voyez l'aide VBA sur MsgBox.

A+
 

job75

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

Bonjour mapomme,

Sur mon ordi (Excel 2010) jamais de sautillement du pointeur.

Mais l'affichage de TextBox1 est souvent aléatoire.

Par ailleurs pas compris à quoi sert vraiment TextBox2.

Je l'ai affichée en exécutant TextBox2.Select puis supprimée. Cela ne change rien :confused:

A+
 

Michou9

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

Bonjour Mapomme

Non cela ne change rien du tout :(

Pour le sautillement, je ne peux pas plus expliquer
Mais c’est bien la 1ère fois que je vois ce problème étrange !

Pour ce qui est de l’affichage trouble
Je joins une vue d’écran
On voit très bien que le mot « rouge » est très trouble alors qu’il ne l’est pas dans la colonne L

A+
 

Pièces jointes

  • Image trouble.jpg
    Image trouble.jpg
    110.4 KB · Affichages: 73

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal