Création d'un Menu type Liste déroulante pour boutons de macros ?

Wily

XLDnaute Junior
Bonjour à tout le Forum

Lorsque l’on a beaucoup de macros, et que l’on souhaite pour les lancer recourir à des boutons assez larges pour être suffisamment explicites. Soit on est obligé de restreindre la zone de la feuille, pour utiliser un UserForm en guise de menu visible en permanence, On est obligé de faire apparaitre cet UserForm Menu par un bouton.
Donc dans le 1er cas on a une fenêtre restreinte.
Dans le cas, si on est obligé d’avoir recours à ces macros en permanence, cela devient vite laborieux.

J’ai donc pensé à ces menus déroulant que l’on utilise dans tous nos logiciels
Serait-il possible de coller ces boutons dans une sorte de liste déroulante ???

On aurait ainsi la clarté, la rapidité et pas d’encombrement de l’écran

Cela fait longtemps que je pense à cela
Je ne pense pas vraiment que cela soit possible
Mais comme je vois souvent des prouesses de certains sur le Forum
 

Wily

XLDnaute Junior
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Re,

Je continue avec la solution de Phlaurent55

Là Plus de Combobox
Et des couleurs paramétrables à l'infini
C'est tout simplement génial !

Comme la largeur risque d'être un problème pour le nom des macros
J'ai rajouter des commentaires pour les macros
et une ligne dans la macro pour les effacer à la fin

Je vais continuer de tester en situation réelle dans mon fichier
Mais je vais d'abord essayer la solution de Dranreb

J'oubliais il y a un petit bug ?
La cellule A1 (Menu) s’efface par moment
Notamment si on clique sur la cellule A2 (pas une fois la macro lancée, mais avant son activation)

A+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Re,
........................

J'oubliais il y a un petit bug ?
La cellule A1 (Menu) s’efface par moment
Notamment si on clique sur la cellule A2 (pas une fois la macro lancée, mais avant son activation)

A+

petit bug corrigé

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Application.EnableEvents = False
Sheets(2).Range("A1:A" & Sheets(2).Range("A65535").End(xlUp).Row).Copy Destination:=Range("A2")
Application.EnableEvents = True
Exit Sub
End If
If Not Intersect(Target, Range("A2:A" & Range("A65535").End(xlUp).Row)) Is Nothing Then
cible = Target.Value
Application.EnableEvents = False
Range("A2:A" & Range("A65535").End(xlUp).Row + 1).Interior.ColorIndex = -4142
Range("A2:A" & Range("A65535").End(xlUp).Row + 1).ClearContents
Application.EnableEvents = True
Application.Run cible
End If
End Sub

à+
Philippe
 

Wily

XLDnaute Junior
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Re,

Merci Dranreb pour cette solution.

J'avoue que je n'aurai jamais eu cette idée surprenante
Je disais la solution de Phlaurent55 géniale
Celle-là l'est toute autant !

Je trouve le temps un peu trop long pour le début de son rétrécissement
Mais je suppose que cela doit être paramétrable
J'ai vu qu'il y avait un Timer, mais je n'ai pas trouvé ce réglage.

Je préférai le mettre tout à droite dans le haut de l'écran
Je pense que c'est la meilleure situation
Il se serait donc plus pratique que le rétrécissement se fasse de gauche à droite et du bas vers le haut
Je pense que cela doit aussi pouvoir se faire ?

Il y a un petit bug
Dès que l'on ouvre la fenêtre VBA
On perd l'Userform
Pour corriger j'ai fait une macro pour le relancer
C'est trois fois rien
Mais il y a sans doute une explication

Je vais le tester en situation réelle dans mon fichier

A+
 

Dranreb

XLDnaute Barbatruc
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Les vitesses de rétrécissement et d'agrandissement se déterminent par Fact
Les durées totales, y compris un éventuel délai avant départ, par Reste. Si on ne veut pas de délai, il faut Fact = 1 / Reste.
Attention, ce n'était qu'une ébauche. Ça plante si on ferme l'UserForm quand la Sub Animer n'a pas fini de s'exécuter.
Comme par ailleurs je déteste les procédures qui bouffent exprès du temps CPU à ne rien faire, pour mon propre usage je mettrais en œuvre un timer système qui se déclencherait toutes les 42 millisecondes.
Il faudrait intégrer une variation de Me.Left et peut être Me.Top au calcul.
 
Dernière édition:

Wily

XLDnaute Junior
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Bonjour à tous

Bonjour Dranreb

Attention, ce n'était qu'une ébauche

Veux-tu dire que tu ne l'as pas terminé ?
Elle n'est pas pleinement opérationnelle tel quelle ?

Bonjour Philippe

juste pour le fun
C'est vrai que c'est fun
Je disais l'autre avec les cellules Géniale
Mais là du coup je ne sais comment la qualifier

A première vue, tu utilise des dessins en guise de bouton de commande
Ce qui est encore mieux pour moi
En effet ta solution d'hier était parfaite
Mais cela nécessitait donc de conserver une colonne de libre pour les cellules macros
Cette fois on réuni en quelque sorte les avantages du Combobox et de ta solution d'hier

Mais j'avoue ne pas comprendre ?
Je ne vois pas la macro ?
Ni les dessins ?

A+
 

Dranreb

XLDnaute Barbatruc
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Bonjour.

Oui, ça plantait si on fermait l'userform pendant l'animation.
La, c'est réglé. J'ai changé des choses.
 

Pièces jointes

  • UFmCyclo.xls
    49.5 KB · Affichages: 37
  • UFmCyclo.xls
    49.5 KB · Affichages: 30

Wily

XLDnaute Junior
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Bonjour Philippe, Dranreb

Philippe, je m'attendais à trouver une macro corsée
Mais je vois que l'unique macro parait fort simple

J'ai bien compris comment apparaissaient ou disparaissaient les dessins
Je sais bien sûr comment en mettre d'autres
Mais je n'arrive pas à comprendre le principe pour rajouter ces dessins à la macro ???

A+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Re,
J'ai bien compris comment apparaissaient ou disparaissaient les dessins
Je sais bien sûr comment en mettre d'autres
Mais je n'arrive pas à comprendre le principe pour rajouter ces dessins à la macro ???

Voici le code qui fait apparaître les dessins 2 à 4

Code:
Sub Clic()
For i = 2 To 4
ActiveSheet.Shapes(i).Visible = True
Next i
End Sub

si tu veux ajouter d'autres dessins, tu dois les nommer de 5 à ........

et ensuite créer des macros pour chaque nouveau dessin
c'est très simple, il suffit de faire un clic-droit sur le dessin et d'y affecter une macro

et pour finir, il faudra modifier:
For i = 2 To 4 en remplaçant 4 par le nom (numéro) du dernier dessin
cette dernière modif est à faire dans les 2 macros Sub Clic() et Sub masque()

à+
Philippe
 

Wily

XLDnaute Junior
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Bonjour

Alors j'avais bien compris
C'est bien ce que j'avais fait
La nouvelle macro à partir du dessin se lance bien
Mais le nouveau dessin lui reste permanent
Tandis que le dessin 1 du Menu lui disparait

Je joins le fichier modifié

A+
 

Pièces jointes

  • 111 Modifié.xlsm
    98.3 KB · Affichages: 19
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Re,

voir fichier joint, un peu plus souple concernant la mise en place
il n'y a plus besoin de renommer les dessins

le Dessin visible en permanence sur la feuille doit se nommer "Menu", pour les autres c'est sans importance

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    119.7 KB · Affichages: 27
  • 111.xlsm
    119.7 KB · Affichages: 32

Wily

XLDnaute Junior
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Bonjour Philippe, Dranreb

Merci Philippe
Effectivement celui-ci est très simple d'utilisation
J'ai pu facilement rajouter des dessins

Partant de là, je viens d'essayer de réaliser un nouveau fichier sur ce même principe
J'ai donc mis de nouveaux dessins
J'ai réécrit la macro en conséquence
J'ai attribué des macros à chaque dessin
J'ai mis un nouveau dessin en guise de menu

Les dessins lancent sans problème les macros affectées

Mais en revanche mon menu disparait

Le Dessin visible en permanence sur la feuille doit se nommer "Menu"
Voilà sans doute le problème !
J'ai bien essayé de nommer le dessin Menu avec la commande habituelle
Mais ce n'est sans doute pas celle qu'il faut employer
Car dans ta solution je ne vois pas de nom "Menu" ??

Peux tu me dire comment tu fais pour attribuer ce nom Menu ??

Merci

A+
 

Pièces jointes

  • Menu.xlsm
    15.5 KB · Affichages: 22
  • Menu.xlsm
    15.5 KB · Affichages: 24

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Re- Bonjour

J'ai bien essayé de nommer le dessin Menu avec la commande habituelle
Mais ce n'est sans doute pas celle qu'il faut employer
Car dans ta solution je ne vois pas de nom "Menu" ??

voir explications dans le fichier

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    204.1 KB · Affichages: 38
  • 111.xlsm
    204.1 KB · Affichages: 35

Wily

XLDnaute Junior
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

Bonjour Philippe

Merci pour cette explication tout en image
Maintenant tout est très clair et simple

Une dernière chose,
Est-il possible de lister tous les noms de ces dessins qu'ils soient visible ou pas dans Excel ?
Comme on le ferait avec Ctrl F3 pour les noms de cellules ou autres formules dans Excel.

A+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Création d'un Menu type Liste déroulante pour boutons de macros ?

re, Bonjour,

voir fichier joint
ça fonctionne également pour les images cachées (mais il n'y en a pas dans le fichier)

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    91.9 KB · Affichages: 29
  • 111.xlsm
    91.9 KB · Affichages: 34

Discussions similaires

Statistiques des forums

Discussions
312 223
Messages
2 086 403
Membres
103 201
dernier inscrit
centrale vet